ObjectDataSource.EnablePaging Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger ett värde som anger om datakällans kontroll stöder växling via den uppsättning data som den hämtar.
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
Egenskapsvärde
trueom datakällans kontroll stöder växling via de data som den hämtar; annars . false
Exempel
Följande tre exempel visar en webbsida, en kod bakom sidklass och en dataåtkomstklass som gör att användaren kan välja hur många poster som ska visas på sidan.
Webbsidan innehåller en ObjectDataSource kontroll vars EnablePaging egenskap är inställd på true. Egenskapen SelectCountMethod är inställd på namnet på en metod som returnerar det totala antalet poster i frågan. Egenskapen MaximumRowsParameterName och StartRowIndexParameterName egenskapen är inställda på namnen på de parametrar som används i metoden Välj. Sidan innehåller också en DropDownList kontroll.
<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>
Det andra exemplet visar en hanterare för ListControl.SelectedIndexChanged kontrollens DropDownList händelse. Koden i hanteraren anger PageSize egenskapen till användarens val.
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
Det tredje exemplet visar dataåtkomstklassen som hämtar data från tabellen Kunder. Den innehåller en metod med namnet GetSubsetOfEmployees, som tilldelas till SelectMethod kontrollens ObjectDataSource egenskap. Exemplet innehåller också en metod med namnet GetEmployeeCount, som tilldelas till SelectCountMethod kontrollens ObjectDataSource egenskap. Klassen använder LINQ för att köra frågor mot tabellen Kunder. Exemplet kräver en LINQ till SQL-klass som representerar northwind-databasen och tabellen Kunder. Mer information finns i 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
Kommentarer
Växling av ObjectDataSource kontrollen hanteras genom att ange EnablePagingegenskaperna StartRowIndexParameterName , MaximumRowsParameterName, SelectCountMethodoch för ObjectDataSource och definiera en select-metod i affärsobjektet med rätt parametrar. När egenskapen EnablePaging är inställd trueSelectParameters på innehåller samlingen ytterligare två parametrar för den första raden som begärs och antalet rader som begärs. Dessa två parametrar namnges enligt definitionen av StartRowIndexParameterName egenskaperna och MaximumRowsParameterName . Metoden Select ska returnera det begärda antalet rader med början vid det angivna indexet. Eftersom data kanske inte delas jämnt med sidstorleken kan den sista sidan innehålla färre rader. Därför är antalet rader som begärs faktiskt det maximala antalet rader som returneras.
När växling är aktiverat på den associerade databundna kontrollen anropar Select den databundna kontrollen metoden med startindexet och antalet rader som krävs. Om egenskapen SelectCountMethod har angetts anropar dessutom den databundna kontrollen metoden innan du återger pager-kontrollerna. Om en GridView kontroll till exempel har växling aktiverat med sidstorleken 5 och metoden som anges av SelectCountMethod egenskapen returnerar 20, visas endast 4 sidor i personsökaren.
Egenskapen EnablePaging delegerar till EnablePaging objektets ObjectDataSourceView egenskap.