ObjectDataSource.SelectCountMethod Tulajdonság

Definíció

Lekéri vagy beállítja annak a metódusnak vagy függvénynek a nevét, amelyet a ObjectDataSource vezérlőelem meghív a sorok számának lekéréséhez.

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

Tulajdonság értéke

Egy sztring, amely annak a metódusnak vagy függvénynek a nevét jelöli, amelyet a ObjectDataSource sorok számának lekérésére használ. A metódusnak egész számot (Int32) kell visszaadnia. Az alapértelmezett érték egy üres sztring ("").

Példák

Az alábbi három példa egy weblapot, egy kód mögötti laposztályt és egy adatelérési osztályt mutat be, amely lehetővé teszi, hogy a felhasználó kiválaszthatja, hogy hány rekord jelenjen meg a lapon.

A weblap egy vezérlőelemet ObjectDataSource tartalmaz, amelynek EnablePaging a tulajdonsága a következőre truevan állítva. A SelectCountMethod tulajdonság egy metódus nevére van beállítva, amely a lekérdezésben szereplő rekordok teljes számát adja vissza. A MaximumRowsParameterName tulajdonság és a StartRowIndexParameterName tulajdonság a Select metódusban használt paraméterek nevére van állítva. A lap egy vezérlőt DropDownList is tartalmaz.

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

A második példa egy kezelőt mutat be a ListControl.SelectedIndexChangedDropDownList vezérlő eseményéhez. A kezelőben lévő kód a PageSize tulajdonságot a felhasználó kiválasztására állítja be.

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

A harmadik példa azt az adatelérési osztályt mutatja be, amely adatokat kér le az Ügyfelek táblából. Tartalmaz egy metódust GetSubsetOfEmployees, amely a SelectMethod vezérlőelem tulajdonságához ObjectDataSource van hozzárendelve. A példa tartalmaz egy metódust GetEmployeeCountis, amely a SelectCountMethod vezérlőelem tulajdonságához ObjectDataSource van rendelve. Az osztály a LINQ használatával kérdezi le az Ügyfelek táblát. A példához linq to SQL osztály szükséges, amely a Northwind adatbázist és az Ügyfelek táblát jelöli. További információ: Hogyan is: LINQ létrehozása SQL-osztályokhoz webes 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

Megjegyzések

A SelectCountMethod tulajdonság azonosít egy üzleti objektum metódust, amely a teljes sorszám lekérésére szolgál az adatforrások lapozásának támogatásához. A SelectCountMethod tulajdonság csak akkor lesz kiértékelve, ha a EnablePaging tulajdonság értéke true.

A SelectCountMethod tulajdonság delegálja a SelectCountMethod vezérlőelemhez társított objektum tulajdonságát ObjectDataSourceViewObjectDataSource . További információ arról, hogy a vezérlőelem hogyan támogatja a ObjectDataSource lapozást: EnablePaging.

A következőre érvényes:

Lásd még