Export (0) Print
Expand All

DataGrid.CurrentPageIndex Property

Gets or sets the index of the currently displayed page.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

public int CurrentPageIndex { get; set; }
/** @property */
public int get_CurrentPageIndex ()

/** @property */
public void set_CurrentPageIndex (int value)

public function get CurrentPageIndex () : int

public function set CurrentPageIndex (value : int)

Property Value

The zero-based index of the page currently displayed.

Exception typeCondition

ArgumentOutOfRangeException

The specified page index is a negative value.

Use this property to determine the currently displayed page in the DataGrid control when paging is enabled. This property is also used to programmatically control which page is displayed.

You can also hide the built in paging controls and create custom controls. To display a specific page, set this property to the page index you want to display and then rebind the data to the DataGrid control.

The following code example demonstrates how to use the CurrentPageIndex property to programmatically control the page to display in the DataGrid control.

<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

<html>
   <script language="C#" runat="server">

      ICollection CreateDataSource() 
      {
         DataTable dt = new DataTable();
         DataRow dr;

         dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
         dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
         dt.Columns.Add(new DataColumn("DateTimeValue", typeof(string)));
         dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));

         for (int i = 0; i < 200; i++) 
         {
            dr = dt.NewRow();

            dr[0] = i;
            dr[1] = "Item " + i.ToString();
            dr[2] = DateTime.Now.ToShortDateString();
            dr[3] = (i % 2 != 0) ? true : false;

            dt.Rows.Add(dr);
         }

         DataView dv = new DataView(dt);
         return dv;
      }

      void Page_Load(Object sender, EventArgs e) 
      {
         if (chk1.Checked)
            MyDataGrid.PagerStyle.Visible=true;
         else
            MyDataGrid.PagerStyle.Visible=false;    

         BindGrid();
      }

      void PagerButtonClick(Object sender, EventArgs e) 
      {
         // Used by external paging UI.
         String arg = ((LinkButton)sender).CommandArgument;

         switch(arg)
         {
            case ("next"):
               if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
                  MyDataGrid.CurrentPageIndex ++;
               break;
            case ("prev"):
               if (MyDataGrid.CurrentPageIndex > 0)
                  MyDataGrid.CurrentPageIndex --;
               break;
            case ("last"):
               MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
               break;
            default:

               // Page number.
               MyDataGrid.CurrentPageIndex = Convert.ToInt32(arg);
               break;
         }
         BindGrid();
      }

      void MyDataGrid_Page(Object sender, DataGridPageChangedEventArgs e) 
      {
         // Used by built-in pager.  CurrentPageIndex is already set.
         BindGrid();
      }

      void BindGrid() 
      {
         MyDataGrid.DataSource = CreateDataSource();
         MyDataGrid.DataBind();
         ShowStats();
      }

      void ShowStats() 
      {
         lblCurrentIndex.Text = "CurrentPageIndex is " + MyDataGrid.CurrentPageIndex;
         lblPageCount.Text = "PageCount is " + MyDataGrid.PageCount;
      }


   </script>

<body>

   <form runat=server>

      <h3>DataGrid Custom Paging Controls</h3>

      <asp:DataGrid id="MyDataGrid"
           AllowPaging="True"
           PageSize="10"
           OnPageIndexChanged="MyDataGrid_Page"
           BorderColor="black"
           BorderWidth="1"
           GridLines="Both"
           CellPadding="3"
           CellSpacing="0"
           Font-Name="Verdana"
           Font-Size="8pt"
           runat="server">

          <PagerStyle Mode="NumericPages"
                      HorizontalAlign="Right">
          </PagerStyle>

          <HeaderStyle BackColor="#aaaadd">
          </HeaderStyle>

          <AlternatingItemStyle BackColor="#eeeeee">
          </AlternatingItemStyle>

      </asp:DataGrid>

      <p>

      <asp:LinkButton id="btnPrev"
           Text="Previous page"
           CommandArgument="prev"
           ForeColor="navy"
           Font-Name="Verdana"
           Font-Size="8pt"
           OnClick="PagerButtonClick"
           runat="server"/>

      &nbsp;

      <asp:LinkButton id="btnNext"
           Text="Next page"
           CommandArgument="next"
           ForeColor="navy"
           Font-Name="Verdana"
           Font-Size="8pt"
           OnClick="PagerButtonClick"
           runat="server"/>

      &nbsp;

      <asp:LinkButton id="btnPage8" runat="server"
           Text="Go to Page 8"
           CommandArgument="7"
           ForeColor="navy"
           Font-Name="Verdana"
           Font-Size="8pt"
           OnClick="PagerButtonClick"/>

      &nbsp;
 
      <asp:LinkButton id="btnFirst"
           Text="Go to the first page"
           CommandArgument="0"
           ForeColor="navy"
           Font-Name="Verdana"
           Font-Size="8pt"
           OnClick="PagerButtonClick"
           runat="server"/>

      &nbsp;

      <asp:LinkButton id="btnLast"
           Text="Go to the last page"
           CommandArgument="last"
           ForeColor="navy"
           Font-Name="Verdana"
           Font-Size="8pt"
           OnClick="PagerButtonClick"
           runat="server"/>

      <p>

      <asp:Checkbox id="chk1"
           Text="Show built-in pager"
           Font-Name="Verdana"
           Font-Size="8pt"
           AutoPostBack="true"
           runat="server"/>

      <p>

      <table bgcolor="#eeeeee" cellpadding="6">
         <tr>
            <td nowrap>
               

                  <asp:Label id="lblCurrentIndex" 
                       runat="server" />
                  <br>

                  <asp:Label id="lblPageCount" 
                       runat="server" />
                  <br>

               
            </td>
         </tr>
      </table>
   </form>

</body>
</html>



<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
<html>
   <script runat="server">
 
      ICollection CreateDataSource()
      {

         // Create sample data for the DataGrid control.
         DataTable dt = new DataTable();
         DataRow dr;
 
         // Define the columns of the table.
         dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
         dt.Columns.Add(new DataColumn("StringValue", typeof(String)));
         dt.Columns.Add(new DataColumn("CurrencyValue", typeof(Double)));
 
         // Populate the table with sample values.
         for (int i=0; i<=100; i++) 
         {

            dr = dt.NewRow();
 
            dr[0] = i;
            dr[1] = "Item " + i.ToString();
            dr[2] = 1.23 * (i + 1);
 
            dt.Rows.Add(dr);
         
         }
 
         DataView dv = new DataView(dt);

         return dv;
      
      }
 
      void Page_Load(Object sender, EventArgs e)
      { 
 
         // Load sample data only once, when the page is first loaded.
         if (!IsPostBack)
         { 
         
            ItemsGrid.DataSource = CreateDataSource();
            ItemsGrid.DataBind();
         
         }

      }

      void Check_Change(Object sender, EventArgs e)
      {
   
         // Allow or prevent paging depending on the user's selection.
         if (AllowPagingCheckBox.Checked)
         {

            ItemsGrid.AllowPaging = true;

         }
         else
         {

            ItemsGrid.AllowPaging = false;

         }

         // Rebind the data to refresh the DataGrid control. 
         ItemsGrid.DataSource = CreateDataSource();
         ItemsGrid.DataBind();

      }

      void Grid_Change(Object sender, DataGridPageChangedEventArgs e) 
      {
 
         // For the DataGrid control to navigate to the correct page when
         // paging is allowed, the CurrentPageIndex property must be updated
         // programmatically. This process is usually accomplished in the
         // event-handling method for the PageIndexChanged event.

         // Set CurrentPageIndex to the page the user clicked.
         ItemsGrid.CurrentPageIndex = e.NewPageIndex;

         // Rebind the data to refresh the DataGrid control. 
         ItemsGrid.DataSource = CreateDataSource();
         ItemsGrid.DataBind();
      
      }

   </script>
 
<body>
 
   <form runat=server>
 
      <h3>DataGrid AllowPaging Example</h3>

      Select whether to allow paging in the DataGrid control.

      <br><br>
 
      <b>Product List</b>
 
      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           AutoGenerateColumns="False"
           PageSize="10"
           AllowPaging="True"
           OnPageIndexChanged="Grid_Change"
           runat="server">

         <HeaderStyle BackColor="#00aaaa">
         </HeaderStyle>

         <Columns>

            <asp:BoundColumn DataField="IntegerValue" 
                 SortExpression="IntegerValue"
                 HeaderText="Item"/>

            <asp:BoundColumn DataField="StringValue"
                 SortExpression="StringValue" 
                 HeaderText="Description"/>

            <asp:BoundColumn DataField="CurrencyValue" 
                 HeaderText="Price"
                 SortExpression="CurrencyValue"
                 DataFormatString="{0:c}">

               <ItemStyle HorizontalAlign="Right">
               </ItemStyle>

            </asp:BoundColumn>

         </Columns> 
 
      </asp:DataGrid>

      <hr>

      <table cellpadding="5">

         <tr>

            <td>

               <asp:CheckBox id="AllowPagingCheckBox"
                    Text="Allow paging"
                    AutoPostBack="True"
                    Checked="True"
                    OnCheckedChanged="Check_Change"
                    runat="server"/>

            </td>
            
         </tr>

      </table>
 
   </form>
 
</body>
</html>


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0

Community Additions

ADD
Show:
© 2014 Microsoft