ObjectDataSource.EnablePaging Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia wartość wskazującą, czy kontrolka źródła danych obsługuje stronicowanie za pośrednictwem zestawu pobieranych danych.
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
Wartość właściwości
true
jeśli kontrola źródła danych obsługuje stronicowanie za pośrednictwem pobieranych danych; w przeciwnym razie , false
.
Przykłady
W poniższych trzech przykładach pokazano stronę sieci Web, klasę strony za kodem i klasę dostępu do danych, która umożliwia użytkownikowi wybranie liczby rekordów wyświetlanych na stronie.
Strona sieci Web zawiera kontrolkę ObjectDataSource , której EnablePaging właściwość jest ustawiona na true
wartość . Właściwość SelectCountMethod jest ustawiana na nazwę metody zwracającej łączną liczbę rekordów w zapytaniu. Właściwość MaximumRowsParameterName i StartRowIndexParameterName właściwość są ustawiane na nazwy parametrów używanych w metodzie Select. Strona zawiera również kontrolkę 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>
Drugi przykład przedstawia procedurę obsługi dla ListControl.SelectedIndexChanged zdarzenia kontrolki DropDownList . Kod w procedurze obsługi ustawia PageSize właściwość na wybór użytkownika.
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
Trzeci przykład przedstawia klasę dostępu do danych, która pobiera dane z tabeli Customers. Zawiera metodę o nazwie GetSubsetOfEmployees
, która jest przypisana do SelectMethod właściwości kontrolki ObjectDataSource . Przykład zawiera również metodę o nazwie GetEmployeeCount
, która jest przypisana do SelectCountMethod właściwości kontrolki ObjectDataSource . Klasa używa linQ do wykonywania zapytań względem tabeli Customers. W przykładzie jest wymagana klasa LINQ to SQL reprezentująca tabelę Northwind Database i Customers. Aby uzyskać więcej informacji, zobacz How to Create LINQ to SQL Classes in a Web Project (Instrukcje: tworzenie klas LINQ to SQL w projekcie internetowym).
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
Uwagi
Stronicowanie za pomocą kontrolki ObjectDataSource jest obsługiwane przez ustawienie EnablePagingwłaściwości ObjectDataSource , , StartRowIndexParameterNameMaximumRowsParameterNamei SelectCountMethod i definiując metodę select w obiekcie biznesowym przy użyciu odpowiednich parametrów.
EnablePaging Gdy właściwość jest ustawiona na true
wartość , SelectParameters kolekcja zawiera dwa dodatkowe parametry dla pierwszego żądanego wiersza i liczbę żądanych wierszy. Te dwa parametry są nazwane zgodnie z definicją StartRowIndexParameterName właściwości i MaximumRowsParameterName . Metoda Select
powinna zwrócić żądaną liczbę wierszy, zaczynając od określonego indeksu. Ponieważ dane mogą nie być równomiernie podzielone według rozmiaru strony, ostatnia strona może zawierać mniej wierszy. W związku z tym liczba żądanych wierszy jest w rzeczywistości maksymalną liczbą zwracanych wierszy.
Gdy stronicowanie jest włączone w skojarzonej kontrolce powiązanej z danymi, kontrolka powiązana z danymi wywołuje metodę Select
z indeksem początkowym i liczbą wymaganych wierszy. Ponadto jeśli właściwość jest ustawiona, kontrolka SelectCountMethod powiązana z danymi wywołuje metodę przed renderowaniem kontrolek pager. Jeśli na przykład kontrolka GridView ma włączoną stronicowanie z rozmiarem strony 5, a metoda określona przez SelectCountMethod właściwość zwraca wartość 20, w stronicowaniu są wyświetlane tylko 4 strony.
Właściwość EnablePaging deleguje do EnablePaging właściwości ObjectDataSourceView obiektu.