DataGrid.CurrentPageIndex-Eigenschaft
Ruft den Index der derzeit angezeigten Seite ab oder legt diesen fest.
Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)
Syntax
'Declaration
Public Property CurrentPageIndex As Integer
'Usage
Dim instance As DataGrid
Dim value As Integer
value = instance.CurrentPageIndex
instance.CurrentPageIndex = value
public int CurrentPageIndex { get; set; }
public:
property int CurrentPageIndex {
int get ();
void set (int value);
}
/** @property */
public int get_CurrentPageIndex ()
/** @property */
public void set_CurrentPageIndex (int value)
public function get CurrentPageIndex () : int
public function set CurrentPageIndex (value : int)
Eigenschaftenwert
Der nullbasierte Index der gerade angezeigten Seite.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
Der angegebene Seitenindex ist ein negativer Wert. |
Hinweise
Bestimmen Sie bei aktiviertem Paging mit dieser Eigenschaft die derzeit im DataGrid-Steuerelement angezeigte Seite. Mit dieser Eigenschaft wird außerdem programmgesteuert bestimmt, welche Seite angezeigt wird.
Sie können die eingebauten Paginierungssteuerelemente auch ausblenden und benutzerdefinierte Steuerelemente erstellen. Um eine bestimmte Seite anzuzeigen, legen Sie diese Eigenschaft auf den Index der anzuzeigenden Seite fest, und binden Sie anschließend die Daten erneut an das DataGrid-Steuerelement.
Beispiel
Das folgende Codebeispiel veranschaulicht, wie mit der CurrentPageIndex-Eigenschaft die im DataGrid-Steuerelement anzuzeigende Seite programmgesteuert festgelegt wird.
<%@ 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 199
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.Visible = True
Else
MyDataGrid.PagerStyle.Visible = False
End If
BindGrid()
End Sub 'Page_Load
Sub PagerButtonClick(sender As Object, e As EventArgs)
' Used by external paging UI.
Dim arg As String = CType(sender, LinkButton).CommandArgument
Select Case arg
Case "next"
If MyDataGrid.CurrentPageIndex < MyDataGrid.PageCount - 1 Then
MyDataGrid.CurrentPageIndex += 1
End If
Case "prev"
If MyDataGrid.CurrentPageIndex > 0 Then
MyDataGrid.CurrentPageIndex -= 1
End If
Case "last"
MyDataGrid.CurrentPageIndex = MyDataGrid.PageCount - 1
Case Else
' Page number.
MyDataGrid.CurrentPageIndex = Convert.ToInt32(arg)
End Select
BindGrid()
End Sub 'PagerButtonClick
Sub MyDataGrid_Page(sender As Object, e As DataGridPageChangedEventArgs)
' Used by built-in pager. CurrentPageIndex is already set.
BindGrid()
End Sub 'MyDataGrid_Page
Sub BindGrid()
MyDataGrid.DataSource = CreateDataSource()
MyDataGrid.DataBind()
ShowStats()
End Sub 'BindGrid
Sub ShowStats()
lblCurrentIndex.Text = "CurrentPageIndex is " & MyDataGrid.CurrentPageIndex
lblPageCount.Text = "PageCount is " & MyDataGrid.PageCount
End Sub 'ShowStats
</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"/>
<asp:LinkButton id="btnNext"
Text="Next page"
CommandArgument="next"
ForeColor="navy"
Font-Name="Verdana"
Font-Size="8pt"
OnClick="PagerButtonClick"
runat="server"/>
<asp:LinkButton id="btnPage8" runat="server"
Text="Go to Page 8"
CommandArgument="7"
ForeColor="navy"
Font-Name="Verdana"
Font-Size="8pt"
OnClick="PagerButtonClick"/>
<asp:LinkButton id="btnFirst"
Text="Go to the first page"
CommandArgument="0"
ForeColor="navy"
Font-Name="Verdana"
Font-Size="8pt"
OnClick="PagerButtonClick"
runat="server"/>
<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 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"/>
<asp:LinkButton id="btnNext"
Text="Next page"
CommandArgument="next"
ForeColor="navy"
Font-Name="Verdana"
Font-Size="8pt"
OnClick="PagerButtonClick"
runat="server"/>
<asp:LinkButton id="btnPage8" runat="server"
Text="Go to Page 8"
CommandArgument="7"
ForeColor="navy"
Font-Name="Verdana"
Font-Size="8pt"
OnClick="PagerButtonClick"/>
<asp:LinkButton id="btnFirst"
Text="Go to the first page"
CommandArgument="0"
ForeColor="navy"
Font-Name="Verdana"
Font-Size="8pt"
OnClick="PagerButtonClick"
runat="server"/>
<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="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("DateTimeValue", System.String));
dt.Columns.Add(new DataColumn("BoolValue", System.Boolean));
for (var i : int = 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);
}
var dv : DataView = new DataView(dt);
return dv;
}
function Page_Load(sender, e : EventArgs)
{
if (chk1.Checked)
MyDataGrid.PagerStyle.Visible=true;
else
MyDataGrid.PagerStyle.Visible=false;
BindGrid();
}
function PagerButtonClick(sender, e : EventArgs)
{
// Used by external paging UI.
var arg : String = (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();
}
function MyDataGrid_Page(sender, e : DataGridPageChangedEventArgs)
{
// Used by built-in pager. CurrentPageIndex is already set
BindGrid();
}
function BindGrid()
{
MyDataGrid.DataSource = CreateDataSource();
MyDataGrid.DataBind();
ShowStats();
}
function 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"/>
<asp:LinkButton id="btnNext"
Text="Next page"
CommandArgument="next"
ForeColor="navy"
Font-Name="Verdana"
Font-Size="8pt"
OnClick="PagerButtonClick"
runat="server"/>
<asp:LinkButton id="btnPage8" runat="server"
Text="Go to Page 8"
CommandArgument="7"
ForeColor="navy"
Font-Name="Verdana"
Font-Size="8pt"
OnClick="PagerButtonClick"/>
<asp:LinkButton id="btnFirst"
Text="Go to the first page"
CommandArgument="0"
ForeColor="navy"
Font-Name="Verdana"
Font-Size="8pt"
OnClick="PagerButtonClick"
runat="server"/>
<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="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 Check_Change(sender As Object, e As EventArgs)
' Allow or prevent paging depending on the user's selection.
If AllowPagingCheckBox.Checked Then
ItemsGrid.AllowPaging = True
Else
ItemsGrid.AllowPaging = False
End If
' 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 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>
<%@ 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>
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