2013-12-14 46 views
1

我有一个GridView:数据源不支持服务器端数据分页。为什么?

<asp:GridView ID="GridView1" runat="server" 
      ForeColor="ActiveCaptionText" BackColor="#FFFF99" GridLines="None" 
      onpageindexchanging="GridView1_PageIndexChanging" AllowPaging="True" 
      CssClass="gridrownormal" onpageindexchanged="GridView1_PageIndexChanged"> 



     </asp:GridView> 

,并使用此代码绑定数据:如果我设置allowpaging假每个事情是确定的,但把它真实的时候,我看到这个错误

GridView1.DataSource = null; 

       List<SearchEngineEO> docs = Search(txtSearch1.Text, ddlSelectCondition1.Text); 

       var query18 = (from c in docs select new { c.DocNO, c.DocType, c.Title, c.PublisherName, c.PublishedDate}).ToList().Distinct(); 

       GridView1.DataSource = query19; 
       GridView1.DataBind(); 

“数据源不支持服务器端数据分页。”

回答

2

这是因为当你在gridview上打开这个属性时,它使用了它的内置分页功能,它只能用于扩展ICollection接口的数据源。在这种情况下,你的对象(query19)不支持它。您应该能够使其通过反转LINQ扩展方法调用...而不是做这方面的工作....

ToList().Distinct() 

做到这一点....

Distinct().ToList() 

这应该工作

0

这可能是因为您试图使用“var query18”获取数据,然后使用“query19”将值分配给“GridView1.DataSource”,或者它是一个错字?

另一件事是尝试实例化“GridView1.DataSource”而不是null。

相关问题