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 |
---|---|
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