ObjectDataSource.EnablePaging Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur qui indique si le contrôle de source de données prend en charge la pagination via le jeu de données qu’il récupère.
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
Valeur de propriété
true si le contrôle de source de données prend en charge la pagination par le biais des données qu’il récupère ; sinon, false.
Exemples
Les trois exemples suivants montrent une page Web, une classe de page code-behind et une classe d’accès aux données qui permettent à l’utilisateur de choisir le nombre d’enregistrements affichés dans la page.
La page Web contient un ObjectDataSource contrôle dont EnablePaging la propriété est définie truesur . La SelectCountMethod propriété est définie sur le nom d’une méthode qui retourne le nombre total d’enregistrements dans la requête. La MaximumRowsParameterName propriété et la StartRowIndexParameterName propriété sont définies sur les noms des paramètres utilisés dans la méthode Select. La page contient également un DropDownList contrôle.
<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>
Le deuxième exemple montre un gestionnaire pour l’événement ListControl.SelectedIndexChanged du DropDownList contrôle. Le code du gestionnaire définit la PageSize propriété sur la sélection de l’utilisateur.
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
Le troisième exemple montre la classe d’accès aux données qui récupère les données de la table Customers. Il inclut une méthode nommée GetSubsetOfEmployees, qui est affectée à la SelectMethod propriété du ObjectDataSource contrôle. L’exemple inclut également une méthode nommée GetEmployeeCount, qui est affectée à la SelectCountMethod propriété du ObjectDataSource contrôle. La classe utilise LINQ pour interroger la table Customers. L’exemple nécessite une classe LINQ to SQL qui représente la base de données Northwind et la table Customers. Pour plus d’informations, consultez 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
Remarques
La pagination par le ObjectDataSource contrôle est gérée en définissant les EnablePagingpropriétés , StartRowIndexParameterNameMaximumRowsParameterNameet SelectCountMethod les propriétés de l’objet ObjectDataSource métier et en définissant une méthode select dans l’objet métier avec les paramètres appropriés. Lorsque la propriété est définie truesur , la SelectParametersEnablePaging collection inclut deux paramètres supplémentaires pour la première ligne demandée et le nombre de lignes demandées. Ces deux paramètres sont nommés comme définis par les propriétés et MaximumRowsParameterName les StartRowIndexParameterName propriétés. La Select méthode doit retourner le nombre demandé de lignes, en commençant à l’index spécifié. Étant donné que les données peuvent ne pas se diviser uniformément par la taille de la page, la dernière page peut contenir moins de lignes. Par conséquent, le nombre de lignes demandées est en fait le nombre maximal de lignes retournées.
Lorsque la pagination est activée sur le contrôle lié aux données associé, le contrôle lié aux données appelle la Select méthode avec l’index de début et le nombre de lignes requises. En outre, si la SelectCountMethod propriété est définie, le contrôle lié aux données appelle la méthode avant de rendre les contrôles du pagineur. Par exemple, si une GridView pagination est activée avec une taille de page de 5 et que la méthode spécifiée par la SelectCountMethod propriété retourne 20, seules 4 pages sont affichées dans le pagineur.
La EnablePaging propriété délègue à la EnablePaging propriété de l’objet ObjectDataSourceView .