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


(AllowPaging プロパティを true に設定することによって) ページング機能が有効になっている場合、PageCount プロパティを使用して、データ ソース内のレコードを表示するために必要な合計ページ数を確認します。この値は、データ ソース内の合計レコード数を (PageSize プロパティで指定された) 1 ページに表示されるレコード数で割り、小数点以下を切り上げて算出します。

PageCount プロパティを使用して、GridView コントロールに表示される合計ページ数を確認する方法を次の例に示します。
<%@ Page language="VB" %> <script runat="server"> Sub PageDropDownList_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) ' Retrieve the pager row. Dim pagerRow As GridViewRow = CustomersGridView.BottomPagerRow ' Retrieve the PageDropDownList DropDownList from the bottom pager row. Dim pageList As DropDownList = CType(pagerRow.Cells(0).FindControl("PageDropDownList"), DropDownList) ' Set the PageIndex property to display that page selected by the user. CustomersGridView.PageIndex = pageList.SelectedIndex End Sub Sub CustomersGridView_DataBound(ByVal sender As Object, ByVal e As EventArgs) ' Retrieve the pager row. Dim pagerRow As GridViewRow = CustomersGridView.BottomPagerRow ' Retrieve the DropDownList and Label controls from the row. Dim pageList As DropDownList = CType(pagerRow.Cells(0).FindControl("PageDropDownList"), DropDownList) Dim pageLabel As Label = CType(pagerRow.Cells(0).FindControl("CurrentPageLabel"), Label) If Not pageList Is Nothing Then ' Create the values for the DropDownList control based on ' the total number of pages required to display the data ' source. Dim i As Integer For i = 0 To CustomersGridView.PageCount - 1 ' Create a ListItem object to represent a page. Dim pageNumber As Integer = i + 1 Dim item As ListItem = New ListItem(pageNumber.ToString()) ' If the ListItem object matches the currently selected ' page, flag the ListItem object as being selected. Because ' the DropDownList control is recreated each time the pager ' row gets created, this will persist the selected item in ' the DropDownList control. If i = CustomersGridView.PageIndex Then item.Selected = True End If ' Add the ListItem object to the Items collection of the ' DropDownList. pageList.Items.Add(item) Next i End If If Not pageLabel Is Nothing Then ' Calculate the current page number. Dim currentPage As Integer = CustomersGridView.PageIndex + 1 ' Update the Label control with the current page information. pageLabel.Text = "Page " & currentPage.ToString() & _ " of " & CustomersGridView.PageCount.ToString() End If End Sub </script> <html> <body> <form runat="server"> <h3>GridView PagerTemplate Example</h3> <asp:gridview id="CustomersGridView" datasourceid="CustomersSqlDataSource" autogeneratecolumns="true" allowpaging="true" ondatabound="CustomersGridView_DataBound" runat="server"> <pagerstyle forecolor="Blue" backcolor="LightBlue"/> <pagertemplate> <table width="100%"> <tr> <td width="70%"> <asp:label id="MessageLabel" forecolor="Blue" text="Select a page:" runat="server"/> <asp:dropdownlist id="PageDropDownList" autopostback="true" onselectedindexchanged="PageDropDownList_SelectedIndexChanged" runat="server"/> </td> <td width="70%" align="right"> <asp:label id="CurrentPageLabel" forecolor="Blue" runat="server"/> </td> </tr> </table> </pagertemplate> </asp:gridview> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression to retrieve the connection string value --> <!-- from the Web.config file. --> <asp:sqldatasource id="CustomersSqlDataSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"> </asp:sqldatasource> </form> </body> </html>
<%@ Page language="C#" %> <script runat="server"> void PageDropDownList_SelectedIndexChanged(Object sender, EventArgs e) { // Retrieve the pager row. GridViewRow pagerRow = CustomersGridView.BottomPagerRow; // Retrieve the PageDropDownList DropDownList from the bottom pager row. DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("PageDropDownList"); // Set the PageIndex property to display that page selected by the user. CustomersGridView.PageIndex = pageList.SelectedIndex; } void CustomersGridView_DataBound(Object sender, EventArgs e) { // Retrieve the pager row. GridViewRow pagerRow = CustomersGridView.BottomPagerRow; // Retrieve the DropDownList and Label controls from the row. DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("PageDropDownList"); Label pageLabel = (Label)pagerRow.Cells[0].FindControl("CurrentPageLabel"); if(pageList != null) { // Create the values for the DropDownList control based on // the total number of pages required to display the data // source. for(int i=0; i<CustomersGridView.PageCount; i++) { // Create a ListItem object to represent a page. int pageNumber = i + 1; ListItem item = new ListItem(pageNumber.ToString()); // If the ListItem object matches the currently selected // page, flag the ListItem object as being selected. Because // the DropDownList control is recreated each time the pager // row gets created, this will persist the selected item in // the DropDownList control. if(i==CustomersGridView.PageIndex) { item.Selected = true; } // Add the ListItem object to the Items collection of the // DropDownList. pageList.Items.Add(item); } } if(pageLabel != null) { // Calculate the current page number. int currentPage = CustomersGridView.PageIndex + 1; // Update the Label control with the current page information. pageLabel.Text = "Page " + currentPage.ToString() + " of " + CustomersGridView.PageCount.ToString(); } } </script> <html> <body> <form runat="server"> <h3>GridView PagerTemplate Example</h3> <asp:gridview id="CustomersGridView" datasourceid="CustomersSqlDataSource" autogeneratecolumns="true" allowpaging="true" ondatabound="CustomersGridView_DataBound" runat="server"> <pagerstyle forecolor="Blue" backcolor="LightBlue"/> <pagertemplate> <table width="100%"> <tr> <td width="70%"> <asp:label id="MessageLabel" forecolor="Blue" text="Select a page:" runat="server"/> <asp:dropdownlist id="PageDropDownList" autopostback="true" onselectedindexchanged="PageDropDownList_SelectedIndexChanged" runat="server"/> </td> <td width="70%" align="right"> <asp:label id="CurrentPageLabel" forecolor="Blue" runat="server"/> </td> </tr> </table> </pagertemplate> </asp:gridview> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression to retrieve the connection string value --> <!-- from the Web.config file. --> <asp:sqldatasource id="CustomersSqlDataSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"> </asp:sqldatasource> </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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- GridView.PageCount プロパティのページへのリンク