ObjectDataSource.SelectCountMethod Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví název metody nebo funkce, kterou ObjectDataSource ovládací prvek vyvolá k načtení počtu řádků.
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
Hodnota vlastnosti
Řetězec, který představuje název metody nebo funkce, kterou ObjectDataSource používá k načtení počtu řádků. Metoda musí vrátit celé číslo (Int32). Výchozí hodnota je prázdný řetězec ("").
Příklady
Následující tři příklady ukazují webovou stránku, třídu stránky s kódem na pozadí a třídu přístupu k datům, které uživateli umožňují vybrat, kolik záznamů se na stránce zobrazí.
Webová stránka obsahuje ovládací prvek ObjectDataSource , jehož EnablePaging vlastnost je nastavena na true
hodnotu . Vlastnost SelectCountMethod je nastavena na název metody, která vrací celkový počet záznamů v dotazu. Vlastnost MaximumRowsParameterName a StartRowIndexParameterName vlastnost jsou nastaveny na názvy parametrů, které se používají v Select metoda. Stránka obsahuje také ovládací prvek DropDownList .
<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>
Druhý příklad ukazuje obslužnou rutinu ListControl.SelectedIndexChanged pro událost DropDownList ovládacího prvku. Kód v obslužné rutině nastaví PageSize vlastnost na výběr uživatele.
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
Třetí příklad ukazuje třídu přístupu k datům, která načítá data z tabulky Customers. Obsahuje metodu s názvem GetSubsetOfEmployees
, která je přiřazena vlastnosti SelectMethodObjectDataSource ovládacího prvku. Příklad obsahuje také metodu s názvem GetEmployeeCount
, která je přiřazena vlastnosti SelectCountMethodObjectDataSource ovládacího prvku. Třída používá LINQ k dotazování tabulky Customers. Příklad vyžaduje třídu LINQ to SQL, která představuje databázi Northwind a tabulku Customers. Další informace najdete v tématu Postupy: Vytvoření tříd LINQ to SQL ve webovém projektu.
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
Poznámky
Vlastnost SelectCountMethod identifikuje metodu obchodního objektu, která se používá k načtení celkového počtu řádků pro podporu stránkování zdroje dat. Vlastnost SelectCountMethod se vyhodnotí pouze v případě, EnablePaging že je vlastnost nastavená na true
.
Vlastnost SelectCountMethod deleguje vlastnost SelectCountMethod objektu ObjectDataSourceView , který je přidružen k ovládacímu ObjectDataSource prvku. Informace o tom, jak ovládací prvek podporuje stránkování, najdete v ObjectDataSource tématu EnablePaging.