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

Dim instance As DataGrid Dim value As Boolean value = instance.AllowCustomPaging instance.AllowCustomPaging = value
/** @property */ public boolean get_AllowCustomPaging () /** @property */ public void set_AllowCustomPaging (boolean value)
public function get AllowCustomPaging () : boolean public function set AllowCustomPaging (value : boolean)
カスタム ページングが有効な場合は true。それ以外の場合は false。既定値は false です。

ページングにより、ページ セグメントに DataGrid コントロールの内容を表示できます。ページの項目数は、PageSize プロパティによって決まります。PageSize プロパティの値を指定しなかった場合、DataGrid は 1 ページに 10 項目を表示します。
通常、DataGrid コントロールのすべての行を格納しているデータ ソースは、その DataGrid コントロールが別のページに移動するたびに読み込まれます。データ ソースが大きい場合は、この動作によって多量のリソースが利用されます。カスタム ページングでは、1 ページの表示に必要なデータのセグメントだけが読み込まれます。
カスタム ページングを有効にするには、AllowPaging プロパティと AllowCustomPaging プロパティを true に設定します。続いて PageIndexChanged イベントを処理するコードを作成します。
PageIndexChanged イベント ハンドラの典型的なロジックは、まず CurrentPageIndex プロパティを表示するページのインデックスに設定します。
![]() |
---|
イベント ハンドラは、DataGridPageChangedEventArgs オブジェクトをパラメータとして受け取ります。このパラメータの NewPageIndex プロパティを使用して、DataGrid コントロールのページ選択要素でユーザーが選択したページのインデックスを確認します。 |
続いて、1 ページに表示するデータが格納されているデータ ソースを作成し、DataBind メソッドを使用してデータを DataGrid コントロールに連結します。
![]() |
---|
データの 1 つのセグメントだけが読み込まれるため、VirtualItemCount プロパティを DataGrid コントロールの項目の合計数に設定する必要があります。この設定により、DataGrid コントロールが、内部の項目をすべて表示するために必要なページの合計数を判断できるようになります。このプロパティは、通常は DataGrid コントロール内の合計項目数が決定されたときにプログラムによって自動的に設定されます。 |
AllowCustomPaging プロパティが false に設定されページングが有効になっている場合、DataGrid コントロールは表示する項目のすべてがデータ ソースに格納されているものと見なします。DataGrid コントロールは、CurrentPageIndex プロパティで指定されたページ インデックスと PageSize プロパティで指定されたページの項目数に基づいて、表示されたページ上にある項目のインデックスを計算します。
AllowCustomPaging プロパティが true に設定されている場合、DataGrid コントロールは VirtualItemCount プロパティで指定した項目だけがデータ ソースに格納されていると見なします。PageSize プロパティで指定した項目数までのすべての項目が表示されます。

AllowCustomPaging プロパティを使用してカスタム ページングを有効にする方法を次のコード例に示します。
<%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script runat="server"> ' Normally, an entire data source is loaded in the DataGrid control, ' which can take up a lot of resources. This example uses custom ' paging, which loads only the segment of data needed to fill a ' single page. In order to query for the appropriate segment of ' data, the index of the first item displayed on a page must be ' tracked as the user navigates between pages. Dim startIndex As Integer = 0 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("DateTimeValue", GetType(String))) dt.Columns.Add(New DataColumn("BoolValue", GetType(Boolean))) ' Populate the table with sample values. When using custom paging, ' a query should only return enough data to fill a single page, ' beginning at the start index. Dim i As Integer For i = startIndex To ((startIndex + MyDataGrid.PageSize) - 1) 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 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 ' Set the virtual item count, which specifies the total number ' items displayed in the DataGrid control when custom paging ' is used. MyDataGrid.VirtualItemCount = 200 ' Retrieve the segment of data to display on the page from the ' data source and bind it to the DataGrid control. BindGrid() End If End Sub Sub MyDataGrid_Page(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. MyDataGrid.CurrentPageIndex = e.NewPageIndex ' Calculate the index of the first item to display on the page ' using the current page index and the page size. startIndex = MyDataGrid.CurrentPageIndex * MyDataGrid.PageSize ' Retrieve the segment of data to display on the page from the ' data source and bind it to the DataGrid control. BindGrid() End Sub Sub BindGrid() MyDataGrid.DataSource = CreateDataSource() MyDataGrid.DataBind() End Sub </script> <body> <form runat="server"> <h3> DataGrid Custom Paging Example </h3> <asp:DataGrid id="MyDataGrid" AllowCustomPaging="True" AllowPaging="True" PageSize="10" OnPageIndexChanged="MyDataGrid_Page" runat="server"> <HeaderStyle BackColor="Navy" ForeColor="White" Font-Bold="True" /> <PagerStyle Mode="NumericPages" HorizontalAlign="Right" /> </asp:DataGrid> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script runat="server"> // Normally, an entire data source is loaded in the DataGrid control, // which can take up a lot of resources. This example uses custom // paging, which loads only the segment of data needed to fill a // single page. In order to query for the appropriate segment of // data, the index of the first item displayed on a page must be // tracked as the user navigates between pages. int startIndex = 0; 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("DateTimeValue", typeof(string))); dt.Columns.Add(new DataColumn("BoolValue", typeof(bool))); // Populate the table with sample values. When using custom paging, // a query should only return enough data to fill a single page, // beginning at the start index. for (int i = startIndex; i < (startIndex + MyDataGrid.PageSize); 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) { // Load sample data only once, when the page is first loaded. if (!IsPostBack) { // Set the virtual item count, which specifies the total number // items displayed in the DataGrid control when custom paging // is used. MyDataGrid.VirtualItemCount = 200; // Retrieve the segment of data to display on the page from the // data source and bind it to the DataGrid control. BindGrid(); } } void MyDataGrid_Page(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. MyDataGrid.CurrentPageIndex = e.NewPageIndex; // Calculate the index of the first item to display on the page // using the current page index and the page size. startIndex = MyDataGrid.CurrentPageIndex * MyDataGrid.PageSize; // Retrieve the segment of data to display on the page from the // data source and bind it to the DataGrid control. BindGrid(); } void BindGrid() { MyDataGrid.DataSource = CreateDataSource(); MyDataGrid.DataBind(); } </script> <body> <form runat="server"> <h3> DataGrid Custom Paging Example </h3> <asp:DataGrid id="MyDataGrid" AllowCustomPaging="True" AllowPaging="True" PageSize="10" OnPageIndexChanged="MyDataGrid_Page" runat="server"> <HeaderStyle BackColor="Navy" ForeColor="White" Font-Bold="True" /> <PagerStyle Mode="NumericPages" HorizontalAlign="Right" /> </asp:DataGrid> </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.AllowCustomPaging プロパティを検索する場合は、下記のリンクをクリックしてください。

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