ObjectDataSource.EnablePaging 属性

定义

获取或设置一个值,该值指示数据源控件是否支持对它检索的数据集进行分页。

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

属性值

如果数据源控件通过它检索的数据支持分页,则为 true;否则为 false

示例

以下三个示例演示了一个网页、一个代码隐藏页类和一个数据访问类,这些类使用户能够选取页面中显示的记录数。

网页包含一个 ObjectDataSource 控件,其 EnablePaging 属性设置为 true。 属性 SelectCountMethod 设置为返回查询中记录总数的方法的名称。 属性 MaximumRowsParameterNameStartRowIndexParameterName 属性设置为 Select 方法中使用的参数的名称。 该页还包含 控件 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>

第二个示例演示 控件的 DropDownList 事件的处理程序ListControl.SelectedIndexChanged。 处理程序中的代码将 PageSize 属性设置为用户的选择。

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

第三个示例演示从 Customers 表检索数据的数据访问类。 它包括一个名为 GetSubsetOfEmployees的方法,该方法分配给 SelectMethod 控件的 ObjectDataSource 属性。 该示例还包括一个名为 GetEmployeeCount的方法,该方法分配给 SelectCountMethod 控件的 ObjectDataSource 属性。 类使用 LINQ 查询 Customers 表。 该示例需要一个 LINQ to SQL 类,该类表示 Northwind 数据库和 Customers 表。 有关详细信息,请参阅 如何:在 Web 项目中创建 LINQ to SQL 类

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

注解

控件的 ObjectDataSource 分页是通过设置 的 EnablePagingStartRowIndexParameterNameMaximumRowsParameterNameSelectCountMethod 属性 ObjectDataSource ,并使用适当的参数在业务对象中定义 select 方法来处理的。 EnablePaging当 属性设置为 true时,集合包含SelectParameters两个附加参数,用于请求的第一行和请求的行数。 这两个参数由 StartRowIndexParameterNameMaximumRowsParameterName 属性定义命名。 方法 Select 应返回请求的行数,从指定的索引处开始。 由于数据可能不会均匀除以页面大小,因此最后一页可能包含较少的行。 因此,请求的行数实际上是返回的最大行数。

在关联的数据绑定控件上启用分页时,数据绑定控件使用开始索引和所需的行数调用 Select 方法。 此外,如果 SelectCountMethod 设置了 属性,则数据绑定控件在呈现寻呼控件之前调用 方法。 例如,如果 GridView 控件启用了页面大小为 5 的分页,并且 属性 SelectCountMethod 指定的 方法返回 20,则页导航中仅显示 4 页。

属性 EnablePaging 委托给 EnablePaging 对象的 属性 ObjectDataSourceView

适用于

另请参阅