我有一个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>
并使用此代码绑定数据:
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();
如果我将allowpaging设置为false,那么每件事情都可以,但是当设置为true时,我会看到这个错误:
“数据源不支持服务器端数据分页。”
答案 0 :(得分:2)
这是因为当您在gridview上转换此属性时,它使用其内置的分页功能,该功能只能用于扩展ICollection接口的数据源。 ..在这种情况下,您的对象(query19)不支持它。您应该能够通过反转linq扩展方法调用来使其工作...而不是这样做....
ToList ().Distinct ()
这样做....
Distinct().ToList()
那应该有用
答案 1 :(得分:0)
这可能是因为您尝试使用“var query18”获取数据,然后使用“query19”将值分配给“GridView1.DataSource”,还是打字错误?
另一件事是尝试实例化“GridView1.DataSource”而不是null。