Элемент управления 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>
TypeName - это имя класса, который содержит функции 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