2010-10-05 5 views
2

Я извлекаю данные из базы данных sql. Я хочу разбить записи и привязать их к трем различным сеткам. Все работает отлично, прежде чем применять пейджинг. Я получаю Источник данных не поддерживает разбиение на страницы на стороне сервера. ошибкаGridview paging с использованием linq в asp.net

Код:

DataTable StoreDisplayTypeList = storeDisplayBL.GetStoreDisplayDetails(); 

     var specialBook = from myRow in StoreDisplayTypeList.AsEnumerable() where (string)myRow["StoreDisplayType"] == "Special Book" select myRow; 
     var newRelease = from myRow in StoreDisplayTypeList.AsEnumerable() where (string)myRow["StoreDisplayType"] == "New Release" select myRow; 
     var Seller = from myRow in StoreDisplayTypeList.AsEnumerable() where (string)myRow["StoreDisplayType"] == "Best Seller" select myRow; 
     var featuredEdition = from myRow in StoreDisplayTypeList.AsEnumerable() where (string)myRow["StoreDisplayType"] == "Featured Edition" select myRow;   

     this.gvBestSeller.DataSource = Seller; 
     this.gvBestSeller.DataBind(); // Error 

     this.gvNewRelease.DataSource = newRelease; 
     this.gvNewRelease.DataBind(); // Error 

     this.gvSpecialBook.DataSource = specialBook; 
     this.gvSpecialBook.DataBind(); // Error 

     this.gvFeaturedREdition.DataSource = featuredEdition; 
     this.gvFeaturedREdition.DataBind(); // Error 

ответ

2

Это потому, что вы используете ВАР. Вам нужно использовать сильно типизированный объект, такой как Список <>.

public class Book 
{ 
    public string _StoreDisplayType { get; set; } 
    public string _title { get; set; } 
} 

var specialBook = from myRow in StoreDisplayTypeList.AsEnumerable() 
        where (string)myRow["StoreDisplayType"] == "Special Book" 
        select new Book{ 
         _StoreDisplayType = myRow["StoreDisplayType"].ToString(), 
         _title = myRow["Title"].ToString() 
        };  

this.gvSpecialBook.DataSource = specialBook.ToList(); 
this.gvSpecialBook.DataBind(); 
+1

Вы правы, но только уточнение - УАК сильно типизированный, от ОРЗ - в этом случае .AsEnumerable возвращается в IEnumerable результирующего набора (который Isnt бетона, конечно). – RPM1984

+0

Good Point, Jezza! благодаря –