Questa documentazione è stata archiviata e non viene gestita.

Proprietà DataGrid.AllowCustomPaging

Ottiene o imposta un valore che indica se la funzionalità di spostamento personalizzato è attivata.

Spazio dei nomi: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

public virtual bool AllowCustomPaging { get; set; }
/** @property */
public boolean get_AllowCustomPaging ()

/** @property */
public void set_AllowCustomPaging (boolean value)

public function get AllowCustomPaging () : boolean

public function set AllowCustomPaging (value : boolean)

Valore proprietà

true se lo spostamento personalizzato è attivato, altrimenti false. Il valore predefinito è false.

Lo spostamento consente la visualizzazione del contenuto del controllo DataGrid in segmenti di pagina. Il numero di elementi su una pagina è determinato dalla proprietà PageSize. Se per la proprietà PageSize non è specificato alcun valore, nel controllo DataGrid saranno visualizzati 10 elementi su una pagina.

Un'origine dati che contiene tutte le righe del controllo DataGrid viene in genere caricata ogni volta che il controllo DataGrid viene spostato su una pagina diversa. Questo può portare a un eccessivo utilizzo di risorse quando l'origine dati è molto estesa. Lo spostamento personalizzato consente di caricare solo il segmento di dati necessario per visualizzare una singola pagina.

Per attivare lo spostamento personalizzato, impostare la proprietà AllowPaging e la proprietà AllowCustomPaging su true. In seguito, fornire il codice per la gestione dell'evento PageIndexChanged.

La logica usuale per il gestore eventi PageIndexChanged consiste innanzitutto nell'impostare la proprietà CurrentPageIndex sull'indice della pagina da visualizzare.

NotaNota

Il gestore eventi riceve un oggetto DataGridPageChangedEventArgs come parametro. La proprietà NewPageIndex di questo parametro può essere utilizzata per determinare l'indice della pagina selezionata mediante gli elementi di selezione della pagina del controllo DataGrid.

In seguito, creare un'origine dati che contenga i dati da visualizzare su una singola pagina e utilizzare il metodo DataBind per associare i dati al controllo DataGrid.

NotaNota

Poiché viene caricato un solo segmento di dati, impostare la proprietà VirtualItemCount sul numero totale degli elementi nel controllo DataGrid. In questo modo, il controllo determina il numero totale di pagine necessario per visualizzare ciascun elemento nel controllo DataGrid. La proprietà è di solito impostata a livello di codice una volta determinato il numero totale degli elementi nel controllo DataGrid.

Quando lo spostamento è attivato con la proprietà AllowCustomPaging impostata su false, il controllo DataGrid presuppone che l'origine dati contenga tutti gli elementi da visualizzare. Il controllo DataGrid calcola gli indici degli elementi sulla pagina visualizzata in base all'indice della pagina, specificato dalla proprietà CurrentPageIndex e al numero degli elementi su una pagina, specificato dalla proprietà PageSize.

Quando la proprietà AllowCustomPaging è impostata su true, il controllo DataGrid presuppone che l'origine dati contenga solo gli elementi, in base a quanto determinato dalla proprietà VirtualItemCount. Sono visualizzati tutti gli elementi compresi nel numero specificato dalla proprietà PageSize.

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare la proprietà AllowCustomPaging per attivare la funzionalità di spostamento personalizzato.

<%@ 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 non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0 1.1 1.0
Mostra: