ObjectDataSource控件(http://msdn.microsoft.com/en-us/library /9a4kyhcx%28v=vs.90%29.aspx)可以自定义寻呼的机制,并且可以通过处理大量数据的寻呼。自定义分页可确保一次只从数据库中检索特定页面数据所需的精确记录集。
ObjectDataSource控件的用法如下:
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
OldValuesParameterFormatString="original_{0}" TypeName="ProductsBLL"
SelectMethod="GetProductsPaged" EnablePaging="True"
SelectCountMethod="TotalNumberOfProducts">
</asp:ObjectDataSource>
的类型名是包含的GetProductsPaged和TotalNumberOfProducts函数的类的名字。所述的ProductsBLL类的可能的表示如下:
public class ProductsBLL
{
public int TotalNumberOfProducts()
{
int recordCount = 0;
if (databaseObj.OpenDatabase())
{
recordCount = databaseObj.DBTotalNumberOfProducts(searchQuery);
databaseObj.CloseDatabase();
}
return recordCount;
}
public DataTable GetProductsPaged(int startRowIndex, int maximumRows)
{
DataTable pagedDataDV = null;
if (databaseObj.OpenDatabase())
{
pagedDataDV = databaseObj.DBGetProductsPaged(searchQuery, startRowIndex, maximumRows);
databaseObj.CloseDatabase();
}
return pagedDataDV;
}
}
功能DBTotalNumberOfProducts得到本对于给定的查询的行的总数。功能DBGetProductsPaged使用MySQL LIMIT关键字从查询数据库中获取数据。 LIMIT使用startRowIndex和maximumRows变量中的值。 maximumRows的值将是一个常量,并且应该与网格的页面大小相同。
GridData.DataSourceID = "ObjectDataSource1";
GridData.DataBind();
以下网站会给ObjectDataSource控件的更多信息:
的数据可以通过使用下面的代码来绑定到网格控制http://msdn.microsoft.com/en-us/library/bb445504.aspx
当你看似乎是显而易见的它:) 我的新问题是,分页控制消失,大概是因为从每个查询返回(页面大小= 10)只有10个记录。 – 2010-07-21 20:25:42
这是一个不同的问题。 – MCain 2010-07-21 20:41:44