2013-10-19 31 views
0

如何對網格視圖執行排序操作。我已經完成了此操作(下面的代碼),但是它是 拋出以下錯誤。如何使用linq執行網格視圖的排序操作?

錯誤:

the type arguments for method 'System.Linq.Enumerable.OrderBy<TSource,TKey>(System.Collections.Generic.IEnumerable<TSource>, 
    System.Func<TSource,TKey>, System.Collections.Generic.IComparer<TKey>)' 
    cannot be inferred from the usage. 

代碼:

gridview1.DataSource = (from bk in bookList 
           join ordr in bookOrders 
           on bk.BookID equals ordr.BookID 
           select new 
           { 
            BookID = bk.BookID, 
            BookNm = bk.BookNm, 
            PaymentMode = ordr.PaymentMode 
           }).AsQueryable().OrderBy(e.SortExpression,e.SortDirection); 
+0

什麼是'的OrderBy(e.SortExpression,e.SortDirection)'? –

+0

我用它來排序output.from查詢 – aravind

+0

好吧,但它們是如何定義的,以及爲什麼使用'AsQueryable()'? –

回答

0

什麼,最後我做了以下

protected void gridview1_Sorting(object sender, GridViewSortEventArgs e) 
     { 
      int p = int.Parse(Session["p"].ToString()); 
      p++; 
      Session["p"] = p; 
      if (p % 2 == 0) 
      { 
       var A = from bk in bookList 
         join ordr in bookOrders 
         on bk.BookID equals ordr.BookID 
         select new 
         { 
          BookID = bk.BookID, 
          BookNm = bk.BookNm, 
          PaymentMode = ordr.PaymentMode 
         }; 


       gridview1.DataSource = A.OrderBy(x => x.BookID); 
       gridview1.DataBind(); 

      } 
      else 
      { 
       var A = from bk in bookList 
         join ordr in bookOrders 
         on bk.BookID equals ordr.BookID 
         select new 
         { 
          BookID = bk.BookID, 
          BookNm = bk.BookNm, 
          PaymentMode = ordr.PaymentMode 
         }; 


       gridview1.DataSource = A.OrderByDescending(x=>x.BookID); 
       gridview1.DataBind(); 

      } 



     }