DataPagerField 類別

定義

作為資料頁面巡覽區欄位類型的基底類別,代表 DataPager 控制項的導覽控制項。

public ref class DataPagerField abstract : System::Web::UI::IStateManager
public abstract class DataPagerField : System.Web.UI.IStateManager
type DataPagerField = class
    interface IStateManager
Public MustInherit Class DataPagerField
Implements IStateManager
繼承
DataPagerField
衍生
實作

範例

下列範例示範如何使用 NextPreviousPagerFieldNumericPagerFieldTemplatePagerField 物件,在 控制項中 DataPager 顯示頁面導覽控制項。 物件衍生自 DataPagerField 類別。

<%@ Page language="C#" %>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head id="Head1" runat="server">
    <title>DataPagerField Example</title>    
    <style type="text/css">
      body  
      {
        text-align: center; 
        font: 13px Tahoma, Arial, Helvetica;
      }
      .item
      {
        border-bottom: solid 1px #FFA500;
        font-weight:bold;
      }
    </style>
  </head>
  <body>
    <form id="form1" runat="server">
        
      <h3>DataPagerField Example</h3>
          
      <asp:ListView ID="ProductsListView" 
        DataSourceID="ContactsDataSource"
        runat="server">
        <LayoutTemplate>
          <table runat="server" id="tblProducts" width="350">
            <tr runat="server" id="itemPlaceholder" />
          </table>
        </LayoutTemplate>
        <ItemTemplate>
          <tr runat="server">
            <td class="item">
              <asp:Label ID="NameLabel" runat="server" 
                Text='<%#Eval("Name") %>' />
            </td>
          </tr>
          <tr runat="server">
            <td>
              <asp:Label ID="DescriptionLabel" runat="server" 
                Text='<%#Eval("Description")%>' />
            </td>
          </tr>
        </ItemTemplate>
        <ItemSeparatorTemplate>
          <tr runat="server">
            <td> </td>
          </tr>
        </ItemSeparatorTemplate>
      </asp:ListView>
      <br />

      <asp:DataPager runat="server" 
        ID="ProductsDataPager" 
        PageSize="5"
        PagedControlID="ProductsListView">
        <Fields>
          <asp:TemplatePagerField>
            <PagerTemplate>
            <b>
            Page
            <asp:Label runat="server" ID="CurrentPageLabel" 
              Text="<%# Container.TotalRowCount>0 ? (Container.StartRowIndex / Container.PageSize) + 1 : 0 %>" />
            of
            <asp:Label runat="server" ID="TotalPagesLabel" 
              Text="<%# Math.Ceiling ((double)Container.TotalRowCount / Container.PageSize) %>" />
            </b>
            <br /><br />
            </PagerTemplate>
          </asp:TemplatePagerField>
          
          <asp:NextPreviousPagerField
            ShowFirstPageButton="true"
            ShowNextPageButton="false"
            ShowPreviousPageButton="false" />
          
          <asp:NumericPagerField 
            PreviousPageText="<<"
            NextPageText=">>"
            ButtonCount="10" />
            
          <asp:NextPreviousPagerField
            ShowLastPageButton="true"
            ShowNextPageButton="false"
            ShowPreviousPageButton="false" />
        </Fields>
      </asp:DataPager>

      <!-- This example uses Microsoft SQL Server and connects      -->
      <!-- to the AdventureWorks sample database. Use an ASP.NET    -->
      <!-- expression to retrieve the connection string value       -->
      <!-- from the Web.config file.                                -->
      <asp:SqlDataSource ID="ContactsDataSource" runat="server" 
        ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
        SelectCommand="SELECT P.Name, PD.Description 
                      FROM Production.ProductModel AS PM 
                      INNER JOIN Production.Product AS P ON PM.ProductModelID = P.ProductModelID 
                      INNER JOIN Production.ProductModelProductDescriptionCulture AS PMPDC 
                      ON PM.ProductModelID = PMPDC.ProductModelID 
                      INNER JOIN Production.ProductDescription AS PD 
                      ON PMPDC.ProductDescriptionID = PD.ProductDescriptionID 
                      WHERE (PMPDC.CultureID = 'en')">
      </asp:SqlDataSource>
      
    </form>
  </body>
</html>
<%@ Page language="VB" %>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head id="Head1" runat="server">
    <title>DataPagerField Example</title>    
    <style type="text/css">
      body  
      {
        text-align: center; 
        font: 13px Tahoma, Arial, Helvetica;
      }
      .item
      {
        border-bottom: solid 1px #FFA500;
        font-weight:bold;
      }
    </style>
  </head>
  <body>
    <form id="form1" runat="server">
        
      <h3>DataPagerField Example</h3>
          
      <asp:ListView ID="ProductsListView" 
        DataSourceID="ContactsDataSource"
        runat="server">
        <LayoutTemplate>
          <table runat="server" id="tblProducts" width="350">
            <tr runat="server" id="itemPlaceholder" />
          </table>
        </LayoutTemplate>
        <ItemTemplate>
          <tr runat="server">
            <td class="item">
              <asp:Label ID="NameLabel" runat="server" 
                Text='<%#Eval("Name") %>' />
            </td>
          </tr>
          <tr runat="server">
            <td>
              <asp:Label ID="DescriptionLabel" runat="server" 
                Text='<%#Eval("Description")%>' />
            </td>
          </tr>
        </ItemTemplate>
        <ItemSeparatorTemplate>
          <tr runat="server">
            <td> </td>
          </tr>
        </ItemSeparatorTemplate>
      </asp:ListView>
      <br />

      <asp:DataPager runat="server" 
        ID="ProductsDataPager" 
        PageSize="5"
        PagedControlID="ProductsListView">
        <Fields>
          <asp:TemplatePagerField>
            <PagerTemplate>
            <b>
            Page
            <asp:Label runat="server" ID="CurrentPageLabel" 
              Text="<%# IIf(Container.TotalRowCount>0, (Container.StartRowIndex / Container.PageSize) + 1, 0) %>" />
            of
            <asp:Label runat="server" ID="TotalPagesLabel" 
              Text="<%# Math.Ceiling (System.Convert.ToDouble(Container.TotalRowCount) / Container.PageSize) %>" />
            </b>
            <br /><br />            
            </PagerTemplate>
          </asp:TemplatePagerField>
          
          <asp:NextPreviousPagerField
            ShowFirstPageButton="true"
            ShowNextPageButton="false"
            ShowPreviousPageButton="false" />
          
          <asp:NumericPagerField 
            PreviousPageText="<<"
            NextPageText=">>"
            ButtonCount="10" />
            
          <asp:NextPreviousPagerField
            ShowLastPageButton="true"
            ShowNextPageButton="false"
            ShowPreviousPageButton="false" />
        </Fields>
      </asp:DataPager>

      <!-- This example uses Microsoft SQL Server and connects      -->
      <!-- to the AdventureWorks sample database. Use an ASP.NET    -->
      <!-- expression to retrieve the connection string value       -->
      <!-- from the Web.config file.                                -->
      <asp:SqlDataSource ID="ContactsDataSource" runat="server" 
        ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
        SelectCommand="SELECT P.Name, PD.Description 
                      FROM Production.ProductModel AS PM 
                      INNER JOIN Production.Product AS P ON PM.ProductModelID = P.ProductModelID 
                      INNER JOIN Production.ProductModelProductDescriptionCulture AS PMPDC 
                      ON PM.ProductModelID = PMPDC.ProductModelID 
                      INNER JOIN Production.ProductDescription AS PD 
                      ON PMPDC.ProductDescriptionID = PD.ProductDescriptionID 
                      WHERE (PMPDC.CultureID = 'en')">
      </asp:SqlDataSource>
      
    </form>
  </body>
</html>

備註

類別 DataPagerField 可作為所有資料呼叫器欄位類型的基類。 控制項會使用 DataPager 資料呼叫器欄位來表示導覽控制項。

使用衍生自 DataPagerField 的類別來選取控制項中顯示的 DataPager 呼叫器類型。 下表列出可用的資料呼叫器欄位類型。

呼叫器欄位類型 描述
NextPreviousPagerField 讓使用者一次流覽一頁的資料頁,或跳到第一頁或最後一頁。
NumericPagerField 可讓使用者依頁碼選取頁面。
TemplatePagerField 可讓頁面開發人員建立自訂分頁 UI。

您可以從 類別衍生 DataPagerField 來建立其他呼叫器欄位類型。

給實施者的注意事項

當您繼承自 DataPagerField 類別時,必須覆寫下列成員:

建構函式

DataPagerField()

初始化 DataPagerField 類別的新執行個體。

屬性

DataPager

取得與 DataPagerField 物件關聯之資料頁面巡覽區的參考。

IsTrackingViewState

取得值,這個值表示 DataPagerField 物件是否正在追蹤它的檢視狀態變更。

QueryStringHandled

取得或設定值,這個值表示是否已評估查詢字串欄位。

QueryStringValue

從要求的 URL 取得查詢字串欄位的值。

ViewState

取得狀態資訊的字典,可讓您在相同頁面的多個要求之間儲存和還原 DataPagerField 物件的檢視狀態。

Visible

取得或設定值,這個值表示是否呈現資料頁面巡覽區欄位。

方法

CloneField()

建立衍生自 DataPagerField 之目前物件的複本。

CopyProperties(DataPagerField)

將衍生自 DataPagerField 之目前物件的屬性複製至指定的 DataPagerField 物件。

CreateDataPagers(DataPagerFieldItem, Int32, Int32, Int32, Int32)

在衍生類別中遭覆寫時,建立資料頁面巡覽區欄位物件的使用者介面 (UI) 控制項,並將它們加入至指定的容器。

CreateField()

在衍生類別中遭覆寫時,建立實際上是衍生 DataPagerField 的空物件。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetQueryStringNavigateUrl(Int32)

建立 URL,這個 URL 包含含有所指定頁碼的查詢字串欄位。

GetType()

取得目前執行個體的 Type

(繼承來源 Object)
HandleEvent(CommandEventArgs)

在衍生類別中遭覆寫時,處理資料頁面巡覽區欄位物件中發生的事件。

LoadViewState(Object)

還原先前儲存的檢視狀態資訊。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
OnFieldChanged()

引發 FieldChanged 事件。

SaveViewState()

儲存 DataPagerField 物件的檢視狀態變更。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
TrackViewState()

DataPagerField 追蹤其檢視狀態變更,以將變更儲存在控制項的 ViewState 物件中,並在相同頁面的其他要求之間保存。

明確介面實作

IStateManager.IsTrackingViewState

取得值,這個值表示 DataPagerField 物件是否正在追蹤它的檢視狀態變更。

IStateManager.LoadViewState(Object)

還原先前儲存的檢視狀態資訊。

IStateManager.SaveViewState()

儲存 DataPagerField 物件的檢視狀態變更。

IStateManager.TrackViewState()

DataPagerField 追蹤其檢視狀態變更,以將變更儲存在控制項的 ViewState 物件中,並在相同頁面的其他要求之間保存。

適用於

另請參閱