Прочитать на английском

Поделиться через


ObjectDataSource.SelectCountMethod Свойство

Определение

Получает или задает имя метода или функции, вызываемых элементом управления ObjectDataSource для извлечения количества строк.

public string SelectCountMethod { get; set; }

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

Строка, представляющая имя метода или функции, используемых объектом ObjectDataSource для извлечения количества строк. Метод должен возвращать целое число (Int32). Значение по умолчанию — пустая строка ("").

Примеры

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

Веб-страница содержит элемент управления, 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, который назначается свойству SelectMethodObjectDataSource элемента управления . Пример также включает метод с именем GetEmployeeCount, который назначается свойству SelectCountMethodObjectDataSource элемента управления . Класс использует LINQ для запроса таблицы Customers. Для этого примера требуется класс 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;
        }
    }
}

Комментарии

Свойство SelectCountMethod определяет метод бизнес-объекта, который используется для получения общего количества строк для поддержки разбиения источника данных на страницы. Свойство SelectCountMethod вычисляется только в том случае, EnablePaging если для свойства задано значение true.

Свойство SelectCountMethod делегируется свойству SelectCountMethod объекта , связанного ObjectDataSourceView с элементом ObjectDataSource управления . Сведения о поддержке разбиения по страницам элементом управления см. в ObjectDataSource разделе EnablePaging.

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

Продукт Версии
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

См. также раздел