可能重复:
The data source does not support server-side data paging
我有一个使用LINQ查询数据绑定到返回结果的GridView。我已经在gridview上启用了分页,因为返回了大约300条记录。
我创建了一个搜索函数,可以生成常规SQL查询并返回结果。但是,执行它时会出现以下错误。
The data source does not support server-side data paging.
这是执行SQL搜索的代码。
IEnumerable<equipment> result = db.ExecuteQuery<equipment>(SQLQuery);
equipmentGrid.DataSource = result;
equipmentGrid.DataBind();
这是gridview代码:
<asp:GridView ID="equipmentGrid" OnPageIndexChanging="equipmentGrid_PageIndexChanging" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<a href="details.aspx?EQCN=<%# DataBinder.Eval(Container.DataItem, "EQCN") %>">Details</a> |
<a href="edit.aspx?EQCN=<%# DataBinder.Eval(Container.DataItem, "EQCN") %>">Edit</a> |
<a href="delete.aspx?EQCN=<%# DataBinder.Eval(Container.DataItem, "EQCN") %>">Delete</a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
和OnPageIndexChanging函数
protected void equipmentGrid_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
equipmentGrid.PageIndex = e.NewPageIndex;
equipmentGrid.DataBind();
}
非常感谢mucH !!!!!
答案 0 :(得分:0)
您需要将Gridview AllowPaging属性设置为true:
<asp:GridView ID="equipmentGrid" OnPageIndexChanging="equipmentGrid_PageIndexChanging" runat="server" AllowPaging="true">
您可能需要在LINQ查询上调用ToList()。您还可以在aspx中设置LINQ数据源。
答案 1 :(得分:0)
试试这个...
protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
// Add here your method for DataBinding
BindGridControl();
gridView.PageIndex = e.NewPageIndex;
gridView.DataBind();
}
如果没有数据绑定方法,您将无法获得分页结果。