ObjectDataSource.EnablePaging 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í hodnotu, která určuje, zda ovládací prvek zdroje dat podporuje stránkování prostřednictvím sady dat, která načte.
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
Hodnota vlastnosti
truepokud ovládací prvek zdroje dat podporuje stránkování dat prostřednictvím dat, která načte; v opačném případě . false
Příklady
Následující tři příklady ukazují webovou stránku, třídu kódu za stránkou 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 ObjectDataSource ovládací prvek, jehož EnablePaging vlastnost je nastavena na true. 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 metodě Select. Stránka obsahuje DropDownList také ovládací prvek.
<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 pro ListControl.SelectedIndexChanged 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 k SelectMethod vlastnosti ObjectDataSource ovládacího prvku. Příklad také obsahuje metodu s názvem GetEmployeeCount, která je přiřazena k SelectCountMethod vlastnosti ObjectDataSource ovládacího prvku. Třída používá LINQ k dotazování na tabulku Customers. Příklad vyžaduje třídu LINQ to SQL, která představuje databázi Northwind a tabulku Customers. Další informace naleznete 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
Stránkování ovládacím ObjectDataSource prvku je zpracováno nastavením EnablePaging, StartRowIndexParameterName, MaximumRowsParameterNamea SelectCountMethod vlastnosti ObjectDataSource a definování výběr metody v obchodním objektu se správnými parametry. Pokud je vlastnost nastavena EnablePaging na true, SelectParameters kolekce obsahuje dva další parametry pro první řádek, který je požadován, a počet požadovaných řádků. Tyto dva parametry jsou pojmenovány definovanými vlastnostmi a MaximumRowsParameterName vlastnostmiStartRowIndexParameterName. Metoda Select by měla vrátit požadovaný počet řádků počínaje zadaným indexem. Vzhledem k tomu, že data nemusí rovnoměrně dělit velikostí stránky, může poslední stránka obsahovat méně řádků. Počet požadovaných řádků je tedy ve skutečnosti maximální počet vrácených řádků.
Pokud je u přidruženého ovládacího prvku vázaného na data povolené stránkování, volá Select ovládací prvek vázané na data metodu s počátečním indexem a počtem požadovaných řádků. Kromě toho, pokud SelectCountMethod je vlastnost nastavena, ovládací prvek vázané na data volá metodu před vykreslením ovládacích prvků pager. Pokud má například GridView ovládací prvek povoleno stránkování s velikostí stránky 5 a metoda určená SelectCountMethod vlastností vrátí 20, zobrazí se v pageru pouze 4 stránky.
Vlastnost EnablePaging deleguje na EnablePaging vlastnost objektu ObjectDataSourceView .