Пейджинг Gridview с использованием linq в asp.net - PullRequest
2 голосов
/ 05 октября 2010

Я получаю данные из базы данных SQL. Я хочу разделить записи и связать их в три разных сетки. Все отлично работает перед применением подкачки. Я получаю . Источник данных не поддерживает подкачку данных на стороне сервера. Код:

 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

1 Ответ

2 голосов
/ 05 октября 2010

Это потому, что вы используете Vars. Вам необходимо использовать строго типизированный объект, например List <>.

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();
...