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