Freigeben über


ObjectDataSource.SelectCountMethod Eigenschaft

Definition

Dient zum Abrufen oder Festlegen des Namens der Methode oder Funktion, die das ObjectDataSource Steuerelement aufruft, um eine Zeilenanzahl abzurufen.

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

Eigenschaftswert

Eine Zeichenfolge, die den Namen der Methode oder Funktion darstellt, die zum ObjectDataSource Abrufen einer Zeilenanzahl verwendet wird. Die Methode muss eine ganze Zahl (Int32) zurückgeben. Der Standardwert ist eine leere Zeichenfolge ("").

Beispiele

Die folgenden drei Beispiele zeigen eine Webseite, eine CodeBehind-Seitenklasse und eine Datenzugriffsklasse, mit der der Benutzer auswählen kann, wie viele Datensätze auf der Seite angezeigt werden.

Die Webseite enthält ein ObjectDataSource Steuerelement, dessen EnablePaging Eigenschaft auf true. Die SelectCountMethod Eigenschaft wird auf den Namen einer Methode festgelegt, die die Gesamtzahl der Datensätze in der Abfrage zurückgibt. Die MaximumRowsParameterName Eigenschaft und die StartRowIndexParameterName Eigenschaft werden auf die Namen der Parameter festgelegt, die in der Select-Methode verwendet werden. Die Seite enthält auch ein DropDownList Steuerelement.

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

Das zweite Beispiel zeigt einen Handler für das ListControl.SelectedIndexChanged Ereignis des DropDownList Steuerelements. Der Code im Handler legt die PageSize Eigenschaft auf die Auswahl des Benutzers fest.

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

Das dritte Beispiel zeigt die Datenzugriffsklasse, die Daten aus der Tabelle "Customers" abruft. Sie enthält eine Methode mit dem Namen GetSubsetOfEmployees, die der SelectMethod Eigenschaft des ObjectDataSource Steuerelements zugewiesen ist. Das Beispiel enthält auch eine Methode namens GetEmployeeCount, die der SelectCountMethod Eigenschaft des ObjectDataSource Steuerelements zugewiesen ist. Die Klasse verwendet LINQ, um die Tabelle "Customers" abzufragen. Das Beispiel erfordert eine LINQ to SQL-Klasse, die die Northwind-Datenbank und die Customers-Tabelle darstellt. Weitere Informationen finden Sie unter 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

Hinweise

Die SelectCountMethod Eigenschaft identifiziert eine Geschäftsobjektmethode, die zum Abrufen einer Gesamtzeilenanzahl verwendet wird, um die Datenquellenauslagerung zu unterstützen. Die SelectCountMethod Eigenschaft wird nur ausgewertet, wenn die EnablePaging Eigenschaft auf true.

Die SelectCountMethod Eigenschaft delegiert an die SelectCountMethod Eigenschaft des ObjectDataSourceView Objekts, das dem ObjectDataSource Steuerelement zugeordnet ist. Informationen dazu, wie paging ObjectDataSource vom Steuerelement unterstützt wird, finden Sie unter EnablePaging.

Gilt für:

Weitere Informationen