Gets or sets a value that indicates whether the data source control supports paging through the set of data that it retrieves.
Namespace:
System.Web.UI.WebControls
Assembly:
System.Web (in System.Web.dll)
Visual Basic (Declaration)
Public Property EnablePaging As Boolean
Dim instance As ObjectDataSource
Dim value As Boolean
value = instance.EnablePaging
instance.EnablePaging = value
public bool EnablePaging { get; set; }
public:
property bool EnablePaging {
bool get ();
void set (bool value);
}
public function get EnablePaging () : boolean
public function set EnablePaging (value : boolean)
<asp:ObjectDataSource EnablePaging="True|False" />
Property Value
Type:
System..::.Boolean
true if the data source control supports paging through the data it retrieves; otherwise, false.
Paging by the ObjectDataSource control is handled by setting the EnablePaging, StartRowIndexParameterName, MaximumRowsParameterName, and SelectCountMethod properties of the ObjectDataSource and defining a select method in the business object with the proper parameters. When the EnablePaging property is set to true, the SelectParameters collection includes two additional parameters for the first row that is requested and the number of rows that are requested. These two parameters are named as defined by the StartRowIndexParameterName and MaximumRowsParameterName properties. The Select method should return the requested number of rows, starting at the specified index. Because the data might not divide evenly by the page size, the last page might contain fewer rows. Thus, the number of rows that are requested is actually the maximum number of rows that are returned.
When paging is enabled on the associated data-bound control, the data-bound control calls the Select method with the start index and number of rows that are required. Additionally, if the SelectCountMethod property is set, the data-bound control calls the method before rendering the pager controls. For example, if a GridView control has paging enabled with a page size of 5, and the method that is specified by the SelectCountMethod property returns 20, only 4 pages are displayed in the pager.
The EnablePaging property delegates to the EnablePaging property of the ObjectDataSourceView object.
The following three examples show a Web page, a code-behind page class, and a data-access class that enable the user to pick how many records are displayed in the page.
The Web page contains an ObjectDataSource control whose EnablePaging property is set to true. The SelectCountMethod property is set to the name of a method that returns the total number of records in the query. The MaximumRowsParameterName property and the StartRowIndexParameterName property are set to the names of the parameters that are used in the Select method. The page also contains a DropDownList control.
<html >
<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>
<html >
<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>
The second example shows a handler for the ListControl..::.SelectedIndexChanged event of the DropDownList control. The code in the handler sets the PageSize property to the user's selection.
Protected Sub rowsToDisplay_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles rowsToDisplay.SelectedIndexChanged
GridView1.PageSize = Integer.Parse(rowsToDisplay.SelectedValue)
End Sub
protected void rowsToDisplay_SelectedIndexChanged(object sender, EventArgs e)
{
GridView1.PageSize = int.Parse(rowsToDisplay.SelectedValue);
}
The third example shows the data access class that retrieves data from the Customers table. It includes a method named GetSubsetOfEmployees, which is assigned to the SelectMethod property of the ObjectDataSource control. The example also includes a method named GetEmployeeCount, which is assigned to the SelectCountMethod property of the ObjectDataSource control. The class uses LINQ to query the Customers table. The example requires a LINQ to SQL class that represents the Northwind database and Customers table. For more information, see How to: Create LINQ to SQL Classes in a Web Application.
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
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;
}
}
}
Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
.NET Framework
Supported in: 3.5, 3.0, 2.0
Reference
Other Resources