DataGrid.CurrentPageIndex プロパティ
アセンブリ: System.Web (system.web.dll 内)

Dim instance As DataGrid Dim value As Integer value = instance.CurrentPageIndex instance.CurrentPageIndex = value
/** @property */ public int get_CurrentPageIndex () /** @property */ public void set_CurrentPageIndex (int value)
現在表示されているページの 0 から始まるインデックス。


このプロパティを使用して、ページングが有効な場合に DataGrid コントロールで現在表示されているページを確認します。このプロパティは、どのページを表示するかをプログラムにより制御する場合にも使用します。
組み込みページング コントロールを非表示にしてカスタム コントロールを作成することもできます。特定のページを表示するには、このプロパティを表示するページ インデックスに設定してから、データを DataGrid コントロールに再連結します。

CurrentPageIndex プロパティを使用して、DataGrid コントロールに表示するページをプログラムによって制御する方法を次のコード例に示します。
<%@ 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>

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からDataGrid.CurrentPageIndex プロパティを検索する場合は、下記のリンクをクリックしてください。

- DataGrid.CurrentPageIndex プロパティのページへのリンク