ITfjernundervisning

ASP.NET / Dataset og datagrid objektet / Paging

Paging

For at kunne lave paging på et datagrid skal vi er der et par ting vi skal sørge for:

  • Vores datagrid skal have sat paging til true
  • Vi skal have fortalt hvilken routine, der skal kaldes, når siden skifter - det kan man man sætte på "i hånden" på datagrid tagget eller via hændelses styringen. Kommandoen ser sådan her ud:
    OnPageIndexChanged="ChangePage"
    Visual Studio.NET med VB.NET
    I VS.NET er der i toppen af kodevinduet mulighed for at vælge hvilken eventhandler man vil skrive kode til.
    Koder du c# kan du i egenskabsvinduet til kontrollen vælge navnet på eventhandleren eller sætte den på i hånden som nævnt ovenfor.

    Visual Studio .NET med C#
    På webformen er der i Properties vinduet et lyn, hvor man kan angive de eventhandlere der knytter sig til det enkelte event. Skriv et navn ud for OnPageIndexChanged og klik efterfølgende på navnet - så kan du få lov til at skrive koden til handleren.
  • Vi skal have skrevet routinen, der sørger for at skrifte sideindekset

 

Objekt kodning:

Der skal ikke gøres andet end at aktivere paging og sætte denne lille eventhandler på

private void dgridProjekter_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
 dgridProjekter.CurrentPageIndex = e.NewPageIndex;
 DoDataBind();
}

 

Klassisk kodning:

VB.NET:

Public Class _2_paging
    Inherits System.Web.UI.Page
     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Not IsPostBack Then
              DoDatabind()
        End If
    End Sub

    Private Sub dgridAndeby_PageIndexChanged(ByVal source As Object, _
     ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) _
     Handles dgridAndeby.PageIndexChanged
        dgridAndeby.CurrentPageIndex = e.NewPageIndex
        DoDatabind()
    End Sub

    Private Sub DoDatabind()
        Dim dsetAndeby As New DataSet
        dsetAndeby.ReadXml(Server.MapPath("Andeby.xml"))
        dgridAndeby.DataSource = dsetAndeby.Tables(0).DefaultView
        dgridAndeby.DataBind()
    End Sub
End Class

C#

namespace Udviklingcsharp.ASP.NET_II_kursus
{
 public class _2_paging : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.DataGrid dgridAndeby;

  private void Page_Load(object sender, System.EventArgs e)
  {
   if (!IsPostBack)
   {
     DoDatabind();
   }
  }

  private void DoDatabind()
  {
   DataSet dsetAndeby = new DataSet();
   dsetAndeby.ReadXml(Server.MapPath("Andeby.xml"));
   dgridAndeby.DataSource = dsetAndeby.Tables[0].DefaultView;
   dgridAndeby.DataBind();
  }

  private void PageChange(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  {
   dgridAndeby.CurrentPageIndex = e.NewPageIndex;
   DoDatabind();
  }
 }
}

Når du har betalt for kurset får du adgang til øvelser til hver lektion.
Og når du har fået godkendt din besvarelse får du desuden adgang til mine løsningsforslag med ekstra tips og trix.