Я рекомендую использовать ObjectDataSource, потому что он ведет к более чистой архитектуре и намного легче обрабатывать события, например, сортировку и разбиение на страницы.В противном случае ваш контроль должен специально обрабатывать такие события, которые я считаю болью в шее.Я всегда создаю бизнес-уровень, и мои методы Get () используют подписи, подобные показанным ниже.Моя модель для этого вида дизайна взята из этой книги, которую я считаю отличным ресурсом Web Forms :
http://www.amazon.com/ASP-NET-2-0-Website-Programming-Programmer/dp/0764584642
в app_code /бизнес-уровень:
public class ProductRepository
{
public List<Product> GetAll(/* params here */ string sortOrder, string orderBy, int startRowIndex, int maximumRows)
{
// call data access tier for Product entities
}
public int GetAllCount(/* params here */ )
{
// call data access tier for count of Product entities
}
}
В веб-форме:
<asp:ObjectDataSource ID="objProduct" runat="server"
TypeName="MyNameSpace.BLL.ProductRepository"
SelectMethod="GetAll"
EnablePaging="true"
SortParameterName="sortOrder"
SelectCountMethod="GetAllCount" />