ObjectDataSource.SelectCountMethod Propriété

Définition

Obtient ou définit le nom de la méthode ou de la fonction que le contrôle ObjectDataSource appelle pour récupérer un nombre de lignes.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

Valeur de propriété

Une chaîne qui représente le nom de la méthode ou de la fonction utilisé par ObjectDataSource pour récupérer un nombre de lignes.A string that represents the name of the method or function that the ObjectDataSource uses to retrieve a row count. La méthode doit retourner un entier (Int32).The method must return an integer (Int32). La valeur par défaut est une chaîne vide ("").The default is an empty string ("").

Exemples

Les trois exemples suivants illustrent une page Web, une classe de page code-behind et une classe d’accès aux données qui permettent à l’utilisateur de choisir le nombre d’enregistrements affichés dans la page.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.

La page Web contient un ObjectDataSource contrôle dont EnablePaging la propriété a la truevaleur.The Web page contains an ObjectDataSource control whose EnablePaging property is set to true. La SelectCountMethod propriété a pour valeur le nom d’une méthode qui retourne le nombre total d’enregistrements dans la requête.The SelectCountMethod property is set to the name of a method that returns the total number of records in the query. La propriété et la StartRowIndexParameterName propriété sont définies sur les noms des paramètres utilisés dans la méthode Select. MaximumRowsParameterNameThe MaximumRowsParameterName property and the StartRowIndexParameterName property are set to the names of the parameters that are used in the Select method. La page contient également un DropDownList contrôle.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>

Le deuxième exemple montre un gestionnaire pour l' ListControl.SelectedIndexChanged événement DropDownList du contrôle.The second example shows a handler for the ListControl.SelectedIndexChanged event of the DropDownList control. Le code dans le gestionnaire affecte à PageSize la propriété la sélection de l’utilisateur.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

Le troisième exemple montre la classe d’accès aux données qui récupère les données de la table Customers.The third example shows the data access class that retrieves data from the Customers table. Il comprend une méthode nommée GetSubsetOfEmployees, qui est assignée SelectMethod à la propriété ObjectDataSource du contrôle.It includes a method named GetSubsetOfEmployees, which is assigned to the SelectMethod property of the ObjectDataSource control. L’exemple comprend également une méthode nommée GetEmployeeCount, qui est assignée SelectCountMethod à la propriété ObjectDataSource du contrôle.The example also includes a method named GetEmployeeCount, which is assigned to the SelectCountMethod property of the ObjectDataSource control. La classe utilise LINQ pour interroger la table Customers.The class uses LINQ to query the Customers table. L’exemple requiert une classe LINQ to SQL qui représente la base de données Northwind et la table Customers.The example requires a LINQ to SQL class that represents the Northwind database and Customers table. Pour plus d’informations, consultez Guide pratique pour Créer des classes LINQ to SQL dans un projetWeb.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

Remarques

La SelectCountMethod propriété identifie une méthode d’objet métier qui est utilisée pour récupérer un nombre total de lignes, afin de prendre en charge la pagination de la source de données.The SelectCountMethod property identifies a business object method that is used to retrieve a total row count, to support data source paging. La SelectCountMethod propriété est évaluée uniquement si EnablePaging la propriété a la truevaleur.The SelectCountMethod property is evaluated only if the EnablePaging property is set to true.

La SelectCountMethod propriété délègue à SelectCountMethod la propriété de ObjectDataSourceView l’objet associé au ObjectDataSource contrôle.The SelectCountMethod property delegates to the SelectCountMethod property of the ObjectDataSourceView object that is associated with the ObjectDataSource control. Pour plus d’informations sur la façon dont la ObjectDataSource pagination est prise EnablePagingen charge par le contrôle, consultez.For information about how paging is supported by the ObjectDataSource control, see EnablePaging.

S’applique à

Voir aussi