ObjectDataSource.SelectCountMethod Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u de naam op van de methode of functie die door het ObjectDataSource besturingselement wordt aangeroepen om het aantal rijen op te halen.
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
Waarde van eigenschap
Een tekenreeks die de naam vertegenwoordigt van de methode of functie die wordt ObjectDataSource gebruikt om het aantal rijen op te halen. De methode moet een geheel getal (Int32) retourneren. De standaardwaarde is een lege tekenreeks ("").
Voorbeelden
In de volgende drie voorbeelden ziet u een webpagina, een code-behind-paginaklasse en een gegevenstoegangsklasse waarmee de gebruiker kan kiezen hoeveel records op de pagina worden weergegeven.
De webpagina bevat een ObjectDataSource besturingselement waarvan EnablePaging de eigenschap is ingesteld op true. De SelectCountMethod eigenschap wordt ingesteld op de naam van een methode die het totale aantal records in de query retourneert. De MaximumRowsParameterName eigenschap en de StartRowIndexParameterName eigenschap worden ingesteld op de namen van de parameters die worden gebruikt in de methode Selecteren. De pagina bevat ook een DropDownList besturingselement.
<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>
In het tweede voorbeeld ziet u een handler voor de ListControl.SelectedIndexChanged gebeurtenis van het DropDownList besturingselement. De code in de handler stelt de PageSize eigenschap in op de selectie van de gebruiker.
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
In het derde voorbeeld ziet u de gegevenstoegangsklasse waarmee gegevens uit de tabel Klanten worden opgehaald. Het bevat een methode met de naam GetSubsetOfEmployees, die is toegewezen aan de SelectMethod eigenschap van het ObjectDataSource besturingselement. Het voorbeeld bevat ook een methode met de naam GetEmployeeCount, die is toegewezen aan de SelectCountMethod eigenschap van het ObjectDataSource besturingselement. De klasse maakt gebruik van LINQ om een query uit te voeren op de tabel Klanten. Voor het voorbeeld is een LINQ naar SQL-klasse vereist die de northwind-database en de tabel Klanten vertegenwoordigt. Zie Hoe to: LINQ maken voor SQL-klassen in een web-Project voor meer informatie.
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
Opmerkingen
De SelectCountMethod eigenschap identificeert een bedrijfsobjectmethode die wordt gebruikt om een totaal aantal rijen op te halen, ter ondersteuning van paging van gegevensbronnen. De SelectCountMethod eigenschap wordt alleen geƫvalueerd als de EnablePaging eigenschap is ingesteld op true.
De SelectCountMethod eigenschap wordt gedelegeerd aan de SelectCountMethod eigenschap van het ObjectDataSourceView object dat is gekoppeld aan het ObjectDataSource besturingselement. Zie voor meer informatie over hoe paging wordt ondersteund door het ObjectDataSource besturingselement EnablePaging.