Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Свойство ObjectDataSource.EnablePaging

 

Опубликовано: Октябрь 2016

Возвращает или задает значение, указывающее, поддерживает ли элемент управления источником данных разбиение по страницам набора данных, которые он получает.

Пространство имен:   System.Web.UI.WebControls
Сборка:  System.Web (в System.Web.dll)

public bool EnablePaging { get; set; }

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

Type: System.Boolean

true Если элемент управления источником данных поддерживает разбиение по страницам данных извлекает; в противном случае — false.

Разбиение по страницам, ObjectDataSource обработано элементом управления, задав EnablePaging, StartRowIndexParameterName, MaximumRowsParameterName, и SelectCountMethod Свойства ObjectDataSource и определение метода select в бизнес-объект с соответствующими параметрами. Когда EnablePaging свойству true, SelectParameters коллекцию входят два дополнительных параметра для запрашиваемого первой строки и число строк, которые запрашиваются. Эти два параметра именуются в соответствии с StartRowIndexParameterName и MaximumRowsParameterName Свойства. Select Метод должен возвращать запрашиваемое количество строк, начиная с указанного индекса. Поскольку данные не могут равномерно разделить по размеру страницы, последняя страница может содержать меньшее число строк. Таким образом число строк, которые запрашиваются является на самом деле максимальное количество возвращаемых строк.

Когда включено разбиение по страницам на связанного элемента управления с привязкой к данным, элемент управления с привязкой к данным вызывает Select метод с начальным индексом и числом строк, которые необходимы. Кроме того Если SelectCountMethod имеет значение, элемент управления привязки данных вызывает метод перед отображением элементов управления страничного навигатора. Например если GridView элемент управления имеет разбиение включено, а размер страницы равен 5, и метод, который задается параметром SelectCountMethod свойство возвращает 20, 4 страницы отображаются в страничного навигатора.

EnablePaging Делегирует свойство EnablePaging свойство ObjectDataSourceView объекта.

В следующих трех примерах веб-страницы, класс фонового кода страницы и класс доступа к данным, позволяющий пользователю выбрать количество записей, отображаются на странице.

Веб-страница содержит ObjectDataSource свойство EnablePaging задано значение true. SelectCountMethod Свойству присвоено имя метода, который возвращает общее число записей в запросе. MaximumRowsParameterName Свойство и StartRowIndexParameterName свойство присваиваются имена параметров, которые используются в методе Select. Страница также содержит DropDownList элемента управления.

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

Во втором примере показан обработчик для ListControl.SelectedIndexChanged событие DropDownList элемента управления. Код в обработчик наборов PageSize свойство для выбора пользователя.

protected void rowsToDisplay_SelectedIndexChanged(object sender, EventArgs e)
{
    GridView1.PageSize = int.Parse(rowsToDisplay.SelectedValue);
}

В третьем примере класс доступа к данным, который извлекает данные из таблицы Customers. Он содержит метод с именем GetSubsetOfEmployees, которому присваивается SelectMethod Свойства ObjectDataSource элемента управления. В примере также содержит метод с именем GetEmployeeCount, которому присваивается SelectCountMethod Свойства ObjectDataSource элемента управления. Этот класс использует LINQ для запроса к таблице клиентов. В этом примере требуется класс LINQ to SQL, представляющий базы данных Northwind и таблицы Customers. Дополнительные сведения см. в разделе Практическое руководство: создание классов LINQ to SQL в веб-проекте.

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

.NET Framework
Доступно с 2.0
Вернуться в начало
Показ: