Udostępnij za pośrednictwem


DetailsView.TopPagerRow Właściwość

Definicja

Pobiera obiekt reprezentujący górny DetailsViewRow wiersz pagera w kontrolce DetailsView .

public:
 virtual property System::Web::UI::WebControls::DetailsViewRow ^ TopPagerRow { System::Web::UI::WebControls::DetailsViewRow ^ get(); };
[System.ComponentModel.Browsable(false)]
public virtual System.Web.UI.WebControls.DetailsViewRow TopPagerRow { get; }
[<System.ComponentModel.Browsable(false)>]
member this.TopPagerRow : System.Web.UI.WebControls.DetailsViewRow
Public Overridable ReadOnly Property TopPagerRow As DetailsViewRow

Wartość właściwości

Element DetailsViewRow reprezentujący górny wiersz pagera w kontrolce DetailsView .

Atrybuty

Przykłady

Poniższy przykład kodu pokazuje, jak używać TopPagerRow właściwości w celu uzyskania dostępu do górnego wiersza DetailsView pagera kontrolki ItemCreated podczas zdarzenia. Dwie Label kontrolki w niestandardowym wierszu pager są następnie aktualizowane przy użyciu bieżącej liczby stron i łącznej liczby stron.


<%@ Page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

    protected void CustomerDetailView_DataBound(object sender, EventArgs e)
    {

        // Get the pager row.
        DetailsViewRow pagerRow = CustomerDetailView.TopPagerRow;

        // Get the Label controls that display the current page information 
        // from the pager row.
        Label pageNum = (Label)pagerRow.Cells[0].FindControl("PageNumberLabel");
        Label totalNum = (Label)pagerRow.Cells[0].FindControl("TotalPagesLabel");

        if ((pageNum != null) && (totalNum != null))
        {
            // Update the Label controls with the current page values.
            int page = CustomerDetailView.DataItemIndex + 1;
            int count = CustomerDetailView.DataItemCount;

            pageNum.Text = page.ToString();
            totalNum.Text = count.ToString();
        }

    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >

  <head runat="server">
    <title>DetailsView TopPagerRow Example</title>
</head>
<body>
    <form id="Form1" runat="server">
        
      <h3>DetailsView TopPagerRow Example</h3>
              
        <!-- Notice that the LinkButton controls in the pager   -->
        <!-- template have their CommandName properties set.    -->
        <!-- The DetailsView control automatically recognizes   -->
        <!-- certain command names and performs the appropriate -->
        <!-- operation. In this example, the CommandName        -->
        <!-- properties are set to "Next" and "Prev", which     -->
        <!-- causes the DetailsView control to navigate to the  -->
        <!-- next and previous record, respectively.            -->        
        <asp:detailsview id="CustomerDetailView"
          datasourceid="DetailsViewSource"
          autogeneraterows="true" 
          allowpaging="true"
          runat="server" OnDataBound="CustomerDetailView_DataBound">
               
          <fieldheaderstyle backcolor="Navy"
            forecolor="White"/>
            
          <PagerSettings Position="top" /> 
          
          <pagertemplate>
            <table width="100%">
              <tr>
                <td>
                  <asp:LinkButton id="PreviousButton"
                    text="<"
                    CommandName="Page"
                    CommandArgument="Prev"
                    runat="Server"/>
                  <asp:LinkButton id="NextButton"
                    text=">"
                    CommandName="Page"
                    CommandArgument="Next"
                    runat="Server"/> 
                </td>
                <td align="right">                
                  Page <asp:Label id="PageNumberLabel" runat="server"/> 
                  of <asp:Label id="TotalPagesLabel" runat="server"/>                
                </td>
              </tr>
            </table>          
          </pagertemplate>   
                    
        </asp:detailsview>
        <!-- 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="DetailsViewSource" runat="server" 
          ConnectionString=
            "<%$ ConnectionStrings:NorthWindConnectionString%>"
            InsertCommand="INSERT INTO [Customers]([CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country]) VALUES (@CustomerID, @CompanyName, @Address, @City, @PostalCode, @Country)"
          SelectCommand="Select [CustomerID], [CompanyName], 
            [Address], [City], [PostalCode], [Country] From 
            [Customers]">
        </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">
<script runat="server">

    Protected Sub CustomerDetailView_DataBound(ByVal sender As Object, ByVal e As EventArgs)
        ' Get the pager row.
        Dim pagerRow As DetailsViewRow = CustomerDetailView.TopPagerRow

        ' Get the Label controls that display the current page information 
        ' from the pager row.
        Dim pageNum As Label = CType(pagerRow.Cells(0).FindControl("PageNumberLabel"), Label)
        Dim totalNum As Label = CType(pagerRow.Cells(0).FindControl("TotalPagesLabel"), Label)

        If (pageNum IsNot Nothing) And (totalNum IsNot Nothing) Then
            ' Update the Label controls with the current page values.
            Dim page As Integer = CustomerDetailView.DataItemIndex + 1
            Dim count As Integer = CustomerDetailView.DataItemCount

            pageNum.Text = Page.ToString()
            totalNum.Text = count.ToString()
        End If
    End Sub

    </script>

<html xmlns="http://www.w3.org/1999/xhtml" >

  <head runat="server">
    <title>DetailsView TopPagerRow Example</title>
</head>
<body>
    <form id="Form1" runat="server">
        
      <h3>DetailsView TopPagerRow Example</h3>
              
        <!-- Notice that the LinkButton controls in the pager   -->
        <!-- template have their CommandName properties set.    -->
        <!-- The DetailsView control automatically recognizes   -->
        <!-- certain command names and performs the appropriate -->
        <!-- operation. In this example, the CommandName        -->
        <!-- properties are set to "Page"                       -->
        <!-- and the CommandArgument                            -->
        <!-- properties are set to "Next" and "Prev", which     -->
        <!-- causes the DetailsView control to navigate to the  -->
        <!-- next and previous record, respectively.            -->        
        <asp:detailsview id="CustomerDetailView"
          datasourceid="DetailsViewSource"
          autogeneraterows="true" 
          allowpaging="true"
          runat="server" 
          OnDataBound="CustomerDetailView_DataBound">
               
          <fieldheaderstyle backcolor="Navy"
            forecolor="White"/>
            
          <PagerSettings Position="top" /> 
          
          <pagertemplate>
            <table width="100%">
              <tr>
                <td>
                  <asp:LinkButton id="PreviousButton"
                    text="<"
                    CommandName="Page"
                    CommandArgument="Prev"
                    runat="Server"/>
                  <asp:LinkButton id="NextButton"
                    text=">"
                    CommandName="Page"
                    CommandArgument="Next"
                    runat="Server"/> 
                </td>
                <td align="right">                
                  Page <asp:Label id="PageNumberLabel" runat="server"/> 
                  of <asp:Label id="TotalPagesLabel" runat="server"/>                
                </td>
              </tr>
            </table>          
          </pagertemplate>   
                    
        </asp:detailsview>
        <!-- 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="DetailsViewSource" runat="server" 
          ConnectionString=
            "<%$ ConnectionStrings:NorthWindConnectionString%>"
            InsertCommand="INSERT INTO [Customers]([CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country]) VALUES (@CustomerID, @CompanyName, @Address, @City, @PostalCode, @Country)"
          SelectCommand="Select [CustomerID], [CompanyName], 
            [Address], [City], [PostalCode], [Country] From 
            [Customers]">
        </asp:SqlDataSource>
    </form>
  </body>
</html>

Uwagi

Po włączeniu AllowPaging stronicowania (przez ustawienie właściwości na true), w kontrolce DetailsView jest automatycznie wyświetlany dodatkowy wiersz o nazwie pager. Wiersz pager zawiera kontrolki, które umożliwiają użytkownikowi przechodzenie do innych rekordów i mogą być wyświetlane u góry, u dołu lub zarówno u góry, jak i dolnej części kontrolki. Użyj właściwości , TopPagerRow aby programowo uzyskać dostęp do DetailsViewRow obiektu reprezentującego górny wiersz pagera w kontrolce DetailsView .

Uwaga

Właściwość TopPagerRow jest dostępna tylko po utworzeniu DetailsView dolnego wiersza stronicowania w zdarzeniu ItemCreated .

Ta właściwość jest często używana, gdy trzeba programowo manipulować górnym wierszem pagera, na przykład podczas dodawania zawartości niestandardowej. Wszelkie modyfikacje TopPagerRow właściwości należy wykonać po renderowaniu DetailsView kontrolki. W przeciwnym razie kontrolka DetailsView zastąpi wszelkie zmiany.

Dotyczy

Zobacz też