ObjectDataSource.EnablePaging Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob das Datenquellensteuerelement das Paging über die datenmenge unterstützt, die sie abruft.
public:
property bool EnablePaging { bool get(); void set(bool value); };
public bool EnablePaging { get; set; }
member this.EnablePaging : bool with get, set
Public Property EnablePaging As Boolean
Eigenschaftswert
truewenn das Datenquellensteuerelement das Paging der abgerufenen Daten unterstützt; andernfalls . false
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
Das Paging durch das ObjectDataSource Steuerelement wird behandelt, indem die EnablePagingEigenschaften StartRowIndexParameterNameMaximumRowsParameterNameSelectCountMethod und Eigenschaften der ObjectDataSource auswahlmethode im Geschäftsobjekt mit den richtigen Parametern festgelegt werden. Wenn die EnablePaging Eigenschaft auf true festgelegt ist, enthält die SelectParameters Auflistung zwei zusätzliche Parameter für die erste angeforderte Zeile und die Anzahl der angeforderten Zeilen. Diese beiden Parameter werden gemäß definition durch die StartRowIndexParameterName eigenschaften MaximumRowsParameterName benannt. Die Select Methode sollte die angeforderte Anzahl von Zeilen zurückgeben, beginnend mit dem angegebenen Index. Da die Daten möglicherweise nicht gleichmäßig durch die Seitengröße dividiert werden, enthält die letzte Seite möglicherweise weniger Zeilen. Daher ist die Anzahl der angeforderten Zeilen tatsächlich die maximale Anzahl von Zeilen, die zurückgegeben werden.
Wenn die Auslagerung für das zugeordnete datengebundene Steuerelement aktiviert ist, ruft das datengebundene Steuerelement die Select Methode mit dem Startindex und der Anzahl der zeilen auf, die erforderlich sind. Wenn die SelectCountMethod Eigenschaft festgelegt ist, ruft das datengebundene Steuerelement die Methode auf, bevor die Pagersteuerelemente gerendert werden. Wenn ein GridView Steuerelement beispielsweise die Seitenverwaltung mit einer Seitengröße von 5 aktiviert hat und die von der SelectCountMethod Eigenschaft angegebene Methode 20 zurückgibt, werden nur vier Seiten im Pager angezeigt.
Die EnablePaging Eigenschaft delegiert an die EnablePaging Eigenschaft des ObjectDataSourceView Objekts.