Freigeben über


ObjectDataSource.EnablePaging Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob das Datenquellensteuerelement Paging für den von ihm abgerufenen Datensatz unterstützt, oder legt diesen fest.

public:
 property bool EnablePaging { bool get(); void set(bool value); };
public bool EnablePaging { get; set; }
member this.EnablePaging : bool with get, set
Public Property EnablePaging As Boolean

Eigenschaftswert

true, wenn das Datenquellen-Steuerelement Paging für die von ihm abgerufenen Daten unterstützt, andernfalls false.

Beispiele

Die folgenden drei Beispiele zeigen eine Webseite, eine CodeBehind-Seitenklasse und eine Datenzugriffsklasse, mit der der Benutzer auswählen kann, wie viele Datensätze auf der Seite angezeigt werden.

Die Webseite enthält ein ObjectDataSource Steuerelement, dessen EnablePaging Eigenschaft auf truefestgelegt ist. Die SelectCountMethod -Eigenschaft wird auf den Namen einer Methode festgelegt, die die Gesamtzahl der Datensätze in der Abfrage zurückgibt. Die MaximumRowsParameterName -Eigenschaft und die StartRowIndexParameterName -Eigenschaft sind auf die Namen der Parameter festgelegt, die in der Select-Methode verwendet werden. Die Seite enthält auch ein DropDownList Steuerelement.

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>ObjectDataSource Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    How many rows to display on this page:<br />
    <asp:DropDownList 
          AutoPostBack="true" 
          ID="rowsToDisplay" 
          runat="server" 
          onselectedindexchanged="rowsToDisplay_SelectedIndexChanged">
        <asp:ListItem Value="5"></asp:ListItem>
        <asp:ListItem Value="10" Selected="True"></asp:ListItem>
        <asp:ListItem Value="20"></asp:ListItem>
    </asp:DropDownList> 
    
    <asp:ObjectDataSource 
        SelectCountMethod="GetEmployeeCount" 
        EnablePaging="true" 
        TypeName="CustomerLogic" 
        SelectMethod="GetSubsetOfEmployees"
        MaximumRowsParameterName="maxRows"
        StartRowIndexParameterName="startRows"
        ID="ObjectDataSource1" 
        runat="server">
    </asp:ObjectDataSource>
    
    <asp:GridView 
        DataSourceID="ObjectDataSource1" 
        AllowPaging="true" 
        ID="GridView1" 
        runat="server">
    </asp:GridView>
    
    </div>
    </form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    How many rows to display on this page:<br />
    <asp:DropDownList 
          AutoPostBack="true" 
          ID="rowsToDisplay" 
          runat="server" 
          onselectedindexchanged="rowsToDisplay_SelectedIndexChanged">
        <asp:ListItem Value="5"></asp:ListItem>
        <asp:ListItem Value="10" Selected="True"></asp:ListItem>
        <asp:ListItem Value="20"></asp:ListItem>
    </asp:DropDownList> 
    
    <asp:ObjectDataSource 
        SelectCountMethod="GetEmployeeCount" 
        EnablePaging="true" 
        TypeName="CustomerLogic" 
        SelectMethod="GetSubsetOfEmployees"
        MaximumRowsParameterName="maxRows"
        StartRowIndexParameterName="startRows"
        ID="ObjectDataSource1" 
        runat="server">
    </asp:ObjectDataSource>
    
    <asp:GridView 
        DataSourceID="ObjectDataSource1" 
        AllowPaging="true" 
        ID="GridView1" 
        runat="server">
    </asp:GridView>
    
    </div>
    </form>
</body>
</html>

Das zweite Beispiel zeigt einen Handler für das ListControl.SelectedIndexChanged -Ereignis des -Steuerelements DropDownList . Der Code im Handler legt die PageSize Eigenschaft auf die Auswahl des Benutzers fest.

protected void rowsToDisplay_SelectedIndexChanged(object sender, EventArgs e)
{
    GridView1.PageSize = int.Parse(rowsToDisplay.SelectedValue);
}
Protected Sub rowsToDisplay_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rowsToDisplay.SelectedIndexChanged
    GridView1.PageSize = Integer.Parse(rowsToDisplay.SelectedValue)
End Sub

Das dritte Beispiel zeigt die Datenzugriffsklasse, die Daten aus der Tabelle Customers abruft. Sie enthält eine Methode namens GetSubsetOfEmployees, die der SelectMethod -Eigenschaft des ObjectDataSource -Steuerelements zugewiesen ist. Das Beispiel enthält auch eine Methode mit dem Namen GetEmployeeCount, die der SelectCountMethod -Eigenschaft des ObjectDataSource -Steuerelements zugewiesen ist. Die -Klasse verwendet LINQ, um die Tabelle Customers abzufragen. Für das Beispiel ist eine LINQ to SQL-Klasse erforderlich, die die Northwind-Datenbank und die Customers-Tabelle darstellt. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen von LINQ to SQL-Klassen in einem Webprojekt.

public class CustomerLogic
{

    public List<Customer> GetSubsetOfEmployees(int startRows, int maxRows)
    {
        NorthwindDataContext ndc = new NorthwindDataContext();
        var customerQuery = 
            from c in ndc.Customers
            select c;

        return customerQuery.Skip(startRows).Take(maxRows).ToList<Customer>();
    }

    public int GetEmployeeCount()
    {
        object cachedCount = HttpRuntime.Cache["TotalEmployeeCount"];
        if (cachedCount != null)
        {
            return int.Parse(cachedCount.ToString());
        }
        else
        {
            NorthwindDataContext ndc = new NorthwindDataContext();
            var totalNumberQuery =
                from c in ndc.Customers
                select c;
            
            int employeeCount = totalNumberQuery.Count();
            HttpRuntime.Cache.Add("TotalEmployeeCount", employeeCount, null, DateTime.Now.AddMinutes(5), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
            return employeeCount;
        }
    }
}
Public Class CustomerLogic
    Public Function GetSubsetOfEmployees(ByVal startRows As Integer, ByVal maxRows As Integer) As List(Of Customer)

        Dim ndc As New NorthwindDataContext()
        Dim customerQuery = _
        From c In ndc.Customers _
            Select c

        Return customerQuery.Skip(startRows).Take(maxRows).ToList()
    End Function

    Public Function GetEmployeeCount() As Integer

        Dim cachedCount = HttpRuntime.Cache("TotalEmployeeCount")
        If cachedCount IsNot Nothing Then
            Return Integer.Parse(cachedCount.ToString())
        Else
            Dim ndc As New NorthwindDataContext()
            Dim totalNumberQuery = _
            From c In ndc.Customers _
                Select c

            Dim employeeCount = totalNumberQuery.Count()
            HttpRuntime.Cache.Add("TotalEmployeeCount", employeeCount, Nothing, DateTime.Now.AddMinutes(5), Cache.NoSlidingExpiration, CacheItemPriority.Normal, Nothing)
            Return employeeCount
        End If
    End Function
End Class

Hinweise

Das Paging durch das ObjectDataSource -Steuerelement wird verarbeitet, indem die EnablePagingEigenschaften , StartRowIndexParameterName, MaximumRowsParameterNameund SelectCountMethod des ObjectDataSource festgelegt und eine select-Methode im Geschäftsobjekt mit den richtigen Parametern definiert werden. Wenn die EnablePaging -Eigenschaft auf truefestgelegt ist, enthält die SelectParameters Auflistung zwei zusätzliche Parameter für die erste angeforderte Zeile und die Anzahl der angeforderten Zeilen. Diese beiden Parameter werden wie durch die StartRowIndexParameterName Eigenschaften und MaximumRowsParameterName definiert benannt. Die Select -Methode sollte die angeforderte Anzahl von Zeilen zurückgeben, beginnend mit dem angegebenen Index. Da die Daten möglicherweise nicht gleichmäßig durch die Seitengröße geteilt werden, enthält die letzte Seite möglicherweise weniger Zeilen. Daher ist die Anzahl der angeforderten Zeilen tatsächlich die maximale Anzahl von Zeilen, die zurückgegeben werden.

Wenn das Paging für das zugeordnete datengebundene Steuerelement aktiviert ist, ruft das datengebundene Steuerelement die -Methode mit dem Select Startindex und der Anzahl der erforderlichen Zeilen auf. Wenn die SelectCountMethod -Eigenschaft festgelegt ist, ruft das datengebundene Steuerelement außerdem die -Methode auf, bevor die Pagersteuerelemente gerendert werden. Wenn für ein Steuerelement beispielsweise das GridView Paging mit einer Seitengröße von 5 aktiviert ist und die von der SelectCountMethod -Eigenschaft angegebene Methode 20 zurückgibt, werden im Pager nur vier Seiten angezeigt.

Die EnablePaging -Eigenschaft delegiert an die EnablePaging -Eigenschaft des ObjectDataSourceView -Objekts.

Gilt für:

Weitere Informationen