ObjectDataSource.SelectCountMethod Свойство

Определение

Получает или задает имя метода или функции, вызываемых элементом управления ObjectDataSource для извлечения количества строк.Gets or sets the name of the method or function that the ObjectDataSource control invokes to retrieve a row count.

public:
 property System::String ^ SelectCountMethod { System::String ^ get(); void set(System::String ^ value); };
public string SelectCountMethod { get; set; }
member this.SelectCountMethod : string with get, set
Public Property SelectCountMethod As String

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

Строка, представляющая имя метода или функции, используемых объектом ObjectDataSource для извлечения количества строк.A string that represents the name of the method or function that the ObjectDataSource uses to retrieve a row count. Метод должен возвращать целое число (Int32).The method must return an integer (Int32). Значение по умолчанию — пустая строка ("").The default is an empty string ("").

Примеры

В следующих трех примерах показана веб-страница, класс страницы кода программной части и класс доступа к данным, позволяющие пользователю выбрать количество записей, отображаемых на странице.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. Свойству MaximumRowsParameterName и свойству StartRowIndexParameterName присвоены имена параметров, используемых в методе 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

Комментарии

Свойство SelectCountMethod определяет метод бизнес-объекта, используемый для получения общего числа строк для поддержки разбиения на страницы источника данных.The SelectCountMethod property identifies a business object method that is used to retrieve a total row count, to support data source paging. Свойство SelectCountMethod вычисляется, только если свойство EnablePaging имеет значение true.The SelectCountMethod property is evaluated only if the EnablePaging property is set to true.

Свойство SelectCountMethod делегирует свойство SelectCountMethod объекта ObjectDataSourceView, связанного с элементом управления ObjectDataSource.The SelectCountMethod property delegates to the SelectCountMethod property of the ObjectDataSourceView object that is associated with the ObjectDataSource control. Сведения о поддержке разбиения по страницам элементом управления ObjectDataSource см. в разделе EnablePaging.For information about how paging is supported by the ObjectDataSource control, see EnablePaging.

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

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