ObjectDataSource.StartRowIndexParameterName 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置数据检索方法参数的名称,该参数用于指示为数据源分页支持检索的第一条记录的标识符的值。
public:
property System::String ^ StartRowIndexParameterName { System::String ^ get(); void set(System::String ^ value); };
public string StartRowIndexParameterName { get; set; }
member this.StartRowIndexParameterName : string with get, set
Public Property StartRowIndexParameterName As String
属性值
业务对象方法参数的名称,该参数用于指示要检索的第一条记录。 该参数必须返回整数值。 默认为 "startRowIndex"
。
示例
以下三个示例演示了一个网页、一个代码隐藏页类和一个数据访问类,这些类使用户能够选取页面中显示的记录数。
网页包含一个 ObjectDataSource 控件,其 EnablePaging 属性设置为 true
。 属性 SelectCountMethod 设置为返回查询中记录总数的方法的名称。 属性 MaximumRowsParameterName 和 StartRowIndexParameterName 属性设置为 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
注解
属性 StartRowIndexParameterName 用于支持数据源分页。 有关 控件如何支持 ObjectDataSource 分页的信息,请参阅 EnablePaging。
属性StartRowIndexParameterName委托给StartRowIndexParameterName与 ObjectDataSource 控件关联的 对象的 属性ObjectDataSourceView。