ObjectDataSource.EnablePaging Eigenschap

Definitie

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het besturingselement van de gegevensbron paging ondersteunt via de set gegevens die worden opgehaald.

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

Waarde van eigenschap

true als het besturingselement voor gegevensbronnen paging ondersteunt door de gegevens die worden opgehaald; anders, false.

Voorbeelden

In de volgende drie voorbeelden ziet u een webpagina, een code-behind-paginaklasse en een gegevenstoegangsklasse waarmee de gebruiker kan kiezen hoeveel records op de pagina worden weergegeven.

De webpagina bevat een ObjectDataSource besturingselement waarvan EnablePaging de eigenschap is ingesteld op true. De SelectCountMethod eigenschap wordt ingesteld op de naam van een methode die het totale aantal records in de query retourneert. De MaximumRowsParameterName eigenschap en de StartRowIndexParameterName eigenschap worden ingesteld op de namen van de parameters die worden gebruikt in de methode Selecteren. De pagina bevat ook een DropDownList besturingselement.

<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>

In het tweede voorbeeld ziet u een handler voor de ListControl.SelectedIndexChanged gebeurtenis van het DropDownList besturingselement. De code in de handler stelt de PageSize eigenschap in op de selectie van de gebruiker.

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

In het derde voorbeeld ziet u de gegevenstoegangsklasse waarmee gegevens uit de tabel Klanten worden opgehaald. Het bevat een methode met de naam GetSubsetOfEmployees, die is toegewezen aan de SelectMethod eigenschap van het ObjectDataSource besturingselement. Het voorbeeld bevat ook een methode met de naam GetEmployeeCount, die is toegewezen aan de SelectCountMethod eigenschap van het ObjectDataSource besturingselement. De klasse maakt gebruik van LINQ om een query uit te voeren op de tabel Klanten. Voor het voorbeeld is een LINQ naar SQL-klasse vereist die de northwind-database en de tabel Klanten vertegenwoordigt. Zie Hoe to: LINQ maken voor SQL-klassen in een web-Project voor meer informatie.

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

Opmerkingen

Paging door het ObjectDataSource besturingselement wordt verwerkt door het instellen van de EnablePaging, StartRowIndexParameterNameen MaximumRowsParameterNameeigenschappen van de ObjectDataSource en SelectCountMethod het definiƫren van een select-methode in het bedrijfsobject met de juiste parameters. Wanneer de EnablePaging eigenschap is ingesteld op true, bevat de SelectParameters verzameling twee extra parameters voor de eerste rij die wordt aangevraagd en het aantal rijen dat wordt aangevraagd. Deze twee parameters worden benoemd zoals gedefinieerd door de StartRowIndexParameterName en MaximumRowsParameterName eigenschappen. De Select methode moet het aangevraagde aantal rijen retourneren, beginnend bij de opgegeven index. Omdat de gegevens mogelijk niet gelijkmatig worden gedeeld door het paginaformaat, bevat de laatste pagina mogelijk minder rijen. Het aantal rijen dat wordt aangevraagd, is dus eigenlijk het maximum aantal rijen dat wordt geretourneerd.

Wanneer paging is ingeschakeld voor het gekoppelde besturingselement voor gegevens, roept het gegevensgebonden besturingselement de Select methode aan met de beginindex en het aantal rijen dat vereist is. Als de eigenschap is ingesteld, roept het SelectCountMethod gegevensgebonden besturingselement de methode aan voordat de pager-besturingselementen worden weergegeven. Als voor een GridView besturingselement bijvoorbeeld paging is ingeschakeld met een paginagrootte van 5 en de methode die is opgegeven door de SelectCountMethod eigenschap 20, worden er slechts 4 pagina's weergegeven in de pager.

De EnablePaging eigenschap wordt gedelegeerd aan de EnablePaging eigenschap van het ObjectDataSourceView object.

Van toepassing op

Zie ook