ObjectDataSource.EnablePaging Свойство

Определение

Возвращает или задает значение, указывающее, поддерживает ли элемент управления источником данных разбиение по страницам извлекаемого им набора данных.Gets or sets a value that indicates whether the data source control supports paging through the set of data that it retrieves.

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

Значение свойства

Значение true, если элемент управления источником данных поддерживает разбиение по страницам извлекаемых им данных; в противном случае — значение false.true if the data source control supports paging through the data it retrieves; otherwise, false.

Примеры

В следующих трех примерах показана веб-страница, класс страницы кода программной части и класс доступа к данным, позволяющие пользователю выбрать количество записей, отображаемых на странице.The following three examples show a Web page, a code-behind page class, and a data-access class that enable the user to pick how many records are displayed in the page.

Веб-страница содержит ObjectDataSource элемент управления, свойство которого EnablePaging имеет значение true.The Web page contains an ObjectDataSource control whose EnablePaging property is set to true. SelectCountMethod Свойству присваивается имя метода, возвращающего общее число записей в запросе.The SelectCountMethod property is set to the name of a method that returns the total number of records in the query. СвойствуStartRowIndexParameterName и свойству присвоены имена параметров, используемых в MaximumRowsParameterName методе Select.The MaximumRowsParameterName property and the StartRowIndexParameterName property are set to the names of the parameters that are used in the Select method. Страница также содержит DropDownList элемент управления.The page also contains a DropDownList control.

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

Во втором примере показан обработчик для ListControl.SelectedIndexChanged события DropDownList элемента управления.The second example shows a handler for the ListControl.SelectedIndexChanged event of the DropDownList control. Код в обработчике задает PageSize свойство для выбора пользователя.The code in the handler sets the PageSize property to the user's selection.

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

В третьем примере показан класс доступа к данным, который получает данные из таблицы Customers.The third example shows the data access class that retrieves data from the Customers table. Он включает метод с именем GetSubsetOfEmployees, который назначается SelectMethod свойству ObjectDataSource элемента управления.It includes a method named GetSubsetOfEmployees, which is assigned to the SelectMethod property of the ObjectDataSource control. В примере также имеется метод с именем GetEmployeeCount, который назначается SelectCountMethod свойству ObjectDataSource элемента управления.The example also includes a method named GetEmployeeCount, which is assigned to the SelectCountMethod property of the ObjectDataSource control. Класс использует LINQ для запроса таблицы Customers.The class uses LINQ to query the Customers table. Для примера требуется класс LINQ to SQL, представляющий таблицу базы данных Northwind и Customers.The example requires a LINQ to SQL class that represents the Northwind database and Customers table. Дополнительные сведения см. в разделе Практическое руководство. Создание LINQ to SQL классов в веб-проекте.For more information, see How to: Create LINQ to SQL Classes in a Web Project.

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

Комментарии

Разбиение по ObjectDataSource EnablePagingстраницам обрабатывается путем задания свойств StartRowIndexParameterName, MaximumRowsParameterName, и SelectCountMethod объекта ObjectDataSource и определения метода Select в бизнес-объекте с соответствующими параметрами.Paging by the ObjectDataSource control is handled by setting the EnablePaging, StartRowIndexParameterName, MaximumRowsParameterName, and SelectCountMethod properties of the ObjectDataSource and defining a select method in the business object with the proper parameters. Если свойство имеет trueзначение, SelectParameters коллекция включает два дополнительных параметра для первой запрошенной строки и количество запрошенных строк. EnablePagingWhen the EnablePaging property is set to true, the SelectParameters collection includes two additional parameters for the first row that is requested and the number of rows that are requested. Эти два параметра называются, как определено StartRowIndexParameterName свойствами MaximumRowsParameterName и.These two parameters are named as defined by the StartRowIndexParameterName and MaximumRowsParameterName properties. Select Метод должен возвращать запрошенное число строк, начиная с указанного индекса.The Select method should return the requested number of rows, starting at the specified index. Поскольку данные могут не делиться равномерно по размеру страницы, последняя страница может содержать меньше строк.Because the data might not divide evenly by the page size, the last page might contain fewer rows. Таким же числом строк, которые запрашиваются, фактически является максимальное число возвращаемых строк.Thus, the number of rows that are requested is actually the maximum number of rows that are returned.

Если в связанном элементе управления с привязкой к данным включено разбиение на страницы, то элемент Select управления с привязкой к данным вызывает метод с начальным индексом и числом требуемых строк.When paging is enabled on the associated data-bound control, the data-bound control calls the Select method with the start index and number of rows that are required. Кроме того, если SelectCountMethod свойство задано, элемент управления с привязкой к данным вызывает метод перед отрисовкой элементов управления страничного навигатора.Additionally, if the SelectCountMethod property is set, the data-bound control calls the method before rendering the pager controls. Например, если GridView в элементе управления включено разбиение по страницам с размером страницы 5, а метод, заданный SelectCountMethod свойством, возвращает значение 20, на пейджер отображается только 4 страницы.For example, if a GridView control has paging enabled with a page size of 5, and the method that is specified by the SelectCountMethod property returns 20, only 4 pages are displayed in the pager.

Свойство делегирует EnablePaging свойствоObjectDataSourceViewобъекта. EnablePagingThe EnablePaging property delegates to the EnablePaging property of the ObjectDataSourceView object.

Применяется к

Дополнительно