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

プロパティ値

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 ("").

次の3つの例は、Web ページ、分離コードページクラス、およびページに表示されるレコード数をユーザーが選択できるようにするデータアクセスクラスを示しています。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.

Web ページには、 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>

2番目の例は、コントロールのイベントのハンドラーを示して 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

3番目の例は、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. この例では、Northwind データベースと Customers テーブルを表す LINQ to SQL クラスが必要です。The example requires a LINQ to SQL class that represents the Northwind database and Customers table. 詳細については、「 方法: Web プロジェクトに 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. プロパティは SelectCountMethodEnablePaging プロパティがに設定されている場合にのみ評価され 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 、「」を参照してください EnablePagingFor information about how paging is supported by the ObjectDataSource control, see EnablePaging.

適用対象

こちらもご覧ください