Freigeben über


DataGrid.PageSize-Eigenschaft

Ruft die Anzahl der Elemente ab, die auf einer einzelnen Seite des DataGrid-Steuerelements angezeigt werden sollen, oder legt diese fest.

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

Syntax

'Declaration
Public Overridable Property PageSize As Integer
'Usage
Dim instance As DataGrid
Dim value As Integer

value = instance.PageSize

instance.PageSize = value
public virtual int PageSize { get; set; }
public:
virtual property int PageSize {
    int get ();
    void set (int value);
}
/** @property */
public int get_PageSize ()

/** @property */
public void set_PageSize (int value)
public function get PageSize () : int

public function set PageSize (value : int)

Eigenschaftenwert

Die Anzahl der Elemente, die auf einer einzelnen Seite des DataGrid-Steuerelements angezeigt werden sollen. Der Standardwert ist 10.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentOutOfRangeException

Die Größe der angegebenen Seite ist kleiner als 1.

Hinweise

Geben Sie mit dieser Eigenschaft die Anzahl der Elemente an, die auf einer Seite des DataGrid-Steuerelements angezeigt werden sollen. Die AllowPaging-Eigenschaft muss auf true festgelegt sein, damit diese Eigenschaft wirksam wird.

Beispiel

Das folgende Codebeispiel veranschaulicht, wie mit der PageSize-Eigenschaft festgelegt wird, dass fünf Elemente auf einer einzelnen Seite des DataGrid-Steuerelements angezeigt werden.

<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
 <html>
 <script language="VB" runat="server">
 Function CreateDataSource() As ICollection
    Dim dt As New DataTable()
    Dim dr As DataRow
    
    dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32)))
    dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
    dt.Columns.Add(New DataColumn("DateTimeValue", GetType(String)))
    dt.Columns.Add(New DataColumn("BoolValue", GetType(Boolean)))
    
    Dim i As Integer
    For i = 0 To 99
        dr = dt.NewRow()
        
        dr(0) = i
        dr(1) = "Item " & i.ToString()
        dr(2) = DateTime.Now.ToShortDateString()
        If i Mod 2 <> 0 Then
            dr(3) = True
        Else
            dr(3) = False
        End If
        
        dt.Rows.Add(dr)
    Next i
    
    Dim dv As New DataView(dt)
    Return dv
End Function 'CreateDataSource


Sub Page_Load(sender As Object, e As EventArgs)
    If chk1.Checked Then
        MyDataGrid.PagerStyle.Mode = PagerMode.NumericPages
    Else
        MyDataGrid.PagerStyle.Mode = PagerMode.NextPrev
    End If 
    BindGrid()
End Sub 'Page_Load


Sub MyDataGrid_Page(sender As Object, e As DataGridPageChangedEventArgs)
    MyDataGrid.CurrentPageIndex = e.NewPageIndex
    BindGrid()
End Sub 'MyDataGrid_Page


Sub BindGrid()
    MyDataGrid.DataSource = CreateDataSource()
    MyDataGrid.DataBind()
    ShowStats()
End Sub 'BindGrid


Sub ShowStats()
    lblEnabled.Text = "AllowPaging is " & MyDataGrid.AllowPaging
    lblCurrentIndex.Text = "CurrentPageIndex is " & MyDataGrid.CurrentPageIndex
    lblPageCount.Text = "PageCount is " & MyDataGrid.PageCount
    lblPageSize.Text = "PageSize is " & MyDataGrid.PageSize
End Sub 'ShowStats

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

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


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

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

       </asp:DataGrid>
 
       <p>
 
       <asp:Checkbox id="chk1" runat="server"
            Text="Show numeric page navigation buttons"
            Font-Name="Verdana"
            Font-Size="8pt"
            AutoPostBack="true"/>
 
       <p>
 
       <table bgcolor="#eeeeee" cellpadding="6">
          <tr>
             <td nowrap>
                
 
                   <asp:Label id="lblEnabled" 
                        runat="server"/><br>
                   <asp:Label id="lblCurrentIndex" 
                        runat="server"/><br>
                   <asp:Label id="lblPageCount" 
                        runat="server"/><br>
                   <asp:Label id="lblPageSize" 
                        runat="server"/><br>
 
                
             </td>
          </tr>
       </table>
 
    </form>
 
 </body>
 </html>
   
<%@ 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 < 100; 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.Mode = PagerMode.NumericPages;
       else 
          MyDataGrid.PagerStyle.Mode = PagerMode.NextPrev;
 
       BindGrid();
    }
 
    void MyDataGrid_Page(Object sender, DataGridPageChangedEventArgs e) 
    {
       MyDataGrid.CurrentPageIndex = e.NewPageIndex;
       BindGrid();
    }
 
    void BindGrid() 
    {
       MyDataGrid.DataSource = CreateDataSource();
       MyDataGrid.DataBind();
       ShowStats();
    }
 
    void ShowStats() 
    {
       lblEnabled.Text = "AllowPaging is " + MyDataGrid.AllowPaging;
       lblCurrentIndex.Text = "CurrentPageIndex is " + MyDataGrid.CurrentPageIndex;
       lblPageCount.Text = "PageCount is " + MyDataGrid.PageCount;
       lblPageSize.Text = "PageSize is " + MyDataGrid.PageSize;
    }
 
 
 </script>
 
 <body>
 
    <h3>DataGrid Paging Example</h3>
 
    <form runat=server>
 
       <asp:DataGrid id="MyDataGrid" runat="server"
            AllowPaging="True"
            PageSize="10"
            OnPageIndexChanged="MyDataGrid_Page"
            BorderColor="black"
            BorderWidth="1"
            GridLines="Both"
            CellPadding="3"
            CellSpacing="0"
            Font-Name="Verdana"
            Font-Size="8pt">

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


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

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

       </asp:DataGrid>
 
       <p>
 
       <asp:Checkbox id="chk1" runat="server"
            Text="Show numeric page navigation buttons"
            Font-Name="Verdana"
            Font-Size="8pt"
            AutoPostBack="true"/>
 
       <p>
 
       <table bgcolor="#eeeeee" cellpadding="6">
          <tr>
             <td nowrap>
                
 
                   <asp:Label id="lblEnabled" 
                        runat="server"/><br>
                   <asp:Label id="lblCurrentIndex" 
                        runat="server"/><br>
                   <asp:Label id="lblPageCount" 
                        runat="server"/><br>
                   <asp:Label id="lblPageSize" 
                        runat="server"/><br>
 
                
             </td>
          </tr>
       </table>
 
    </form>
 
 </body>
 </html>
   
<%@ Page Language="JScript" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
 <html>
 <script language="JScript" runat="server">
 
    function CreateDataSource() : ICollection 
    {
      var dt : DataTable = new DataTable();
      var dr : DataRow;
 
      dt.Columns.Add(new DataColumn("IntegerValue", Int32));
      dt.Columns.Add(new DataColumn("StringValue", System.String));
      dt.Columns.Add(new DataColumn("CurrencyValue", double));
 
      for (var i : int = 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);
      }
 
      var dv : DataView = new DataView(dt);
      return dv;
    }
 
    function Page_Load(sender, e : EventArgs) 
    {
       if (chk1.Checked)
          MyDataGrid.PagerStyle.Mode = PagerMode.NumericPages;
       else 
          MyDataGrid.PagerStyle.Mode = PagerMode.NextPrev;
 
       BindGrid();
    }
 
    function MyDataGrid_Page(sender, e : DataGridPageChangedEventArgs) 
    {
       MyDataGrid.CurrentPageIndex = e.NewPageIndex;
       BindGrid();
    }
 
    function BindGrid() 
    {
       MyDataGrid.DataSource = CreateDataSource();
       MyDataGrid.DataBind();
       ShowStats();
    }
 
    function ShowStats() 
    {
       lblEnabled.Text = "AllowPaging is " + MyDataGrid.AllowPaging;
       lblCurrentIndex.Text = "CurrentPageIndex is " + MyDataGrid.CurrentPageIndex;
       lblPageCount.Text = "PageCount is " + MyDataGrid.PageCount;
       lblPageSize.Text = "PageSize is " + MyDataGrid.PageSize;
    }
 
 
 </script>
 
 <body>
 
    <h3>DataGrid Paging Example</h3>
 
    <form runat=server>
 
       <asp:DataGrid id="MyDataGrid" runat="server"
            AllowPaging="True"
            PageSize="10"
            OnPageIndexChanged="MyDataGrid_Page"
            BorderColor="black"
            BorderWidth="1"
            GridLines="Both"
            CellPadding="3"
            CellSpacing="0"
            Font-Name="Verdana"
            Font-Size="8pt">

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


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

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

       </asp:DataGrid>
 
       <p>
 
       <asp:Checkbox id="chk1" runat="server"
            Text="Show numeric page navigation buttons"
            Font-Name="Verdana"
            Font-Size="8pt"
            AutoPostBack="true"/>
 
       <p>
 
       <table bgcolor="#eeeeee" cellpadding="6">
          <tr>
             <td nowrap>
                
 
                   <asp:Label id="lblEnabled" 
                        runat="server"/><br>
                   <asp:Label id="lblCurrentIndex" 
                        runat="server"/><br>
                   <asp:Label id="lblPageCount" 
                        runat="server"/><br>
                   <asp:Label id="lblPageSize" 
                        runat="server"/><br>
 
                
             </td>
          </tr>
       </table>
 
    </form>
 
 </body>
 </html>
   
<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
<html>
   <script runat="server">
 
      Function CreateDataSource() As ICollection 

         ' Create sample data for the DataGrid control.
         Dim dt As DataTable = New DataTable()
         Dim dr As DataRow
 
         ' Define the columns of the table.
         dt.Columns.Add(new DataColumn("IntegerValue", GetType(Int32)))
         dt.Columns.Add(new DataColumn("StringValue", GetType(String)))
         dt.Columns.Add(new DataColumn("CurrencyValue", GetType(Double)))
 
         ' Populate the table with sample values.
         Dim i As Integer

         For i=0 To 100

            dr = dt.NewRow()
 
            dr(0) = i
            dr(1) = "Item " & i.ToString()
            dr(2) = 1.23 * (i + 1)
 
            dt.Rows.Add(dr)
         
         Next i
 
         Dim dv As DataView = New DataView(dt)

         Return dv
      
      End Function
 
      Sub Page_Load(sender As Object, e As EventArgs)
 
         ' Load sample data only once, when the page is first loaded.
         If Not IsPostBack Then 
         
            ItemsGrid.DataSource = CreateDataSource()
            ItemsGrid.DataBind()
         
         End If

      End Sub

      Sub Selection_Change(sender As Object, e As EventArgs)

         ' Set the page size for the DataGrid control based on the
         ' user's selection.
         ItemsGrid.PageSize = Convert.ToInt32(PageSizeList.SelectedItem.Text)

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

      End Sub

      Sub Grid_Change(sender As Object, e As DataGridPageChangedEventArgs) 
 
         ' 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()
      
      End Sub

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

      Select the number of items to display on a page.

      <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:Label id="Message" 
                    Text="Page size:"
                    runat="server"/>

            </td>

         </tr>

         <tr>

            <td>

               <asp:DropDownList id="PageSizeList"
                    AutoPostBack="True"
                    OnSelectedIndexChanged="Selection_Change"
                    runat="server">

                  <asp:ListItem> 5 </asp:ListItem>
                  <asp:ListItem Selected="True"> 10 </asp:ListItem>
                  <asp:ListItem> 15 </asp:ListItem>
                  <asp:ListItem> 20 </asp:ListItem>

               </asp:DropDownList>

            </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 Selection_Change(Object sender, EventArgs e)
      {

         // Set the page size for the DataGrid control based on the
         // user's selection.
         ItemsGrid.PageSize = 
             Convert.ToInt32(PageSizeList.SelectedItem.Text);

         // 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 PageSize Example</h3>

      Select the number of items to display on a page.

      <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:Label id="Message" 
                    Text="Page size:"
                    runat="server"/>

            </td>

         </tr>

         <tr>

            <td>

               <asp:DropDownList id="PageSizeList"
                    AutoPostBack="True"
                    OnSelectedIndexChanged="Selection_Change"
                    runat="server">

                  <asp:ListItem> 5 </asp:ListItem>
                  <asp:ListItem Selected="True"> 10 </asp:ListItem>
                  <asp:ListItem> 15 </asp:ListItem>
                  <asp:ListItem> 20 </asp:ListItem>

               </asp:DropDownList>

            </td>

         </tr>

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

Plattformen

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

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

DataGrid-Klasse
DataGrid-Member
System.Web.UI.WebControls-Namespace
DataGrid.AllowPaging-Eigenschaft
DataGrid.AllowCustomPaging-Eigenschaft
PageIndexChanged