ASP.NET DataContext GridView 分页[重复]

问题描述 投票:0回答:2

可能重复:
数据源不支持服务器端数据分页

我有一个 GridView,它使用 LINQ 查询将数据绑定到返回的结果。我在 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();

这是网格视图代码:

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

非常感谢H!!!!!!

c# asp.net pagination datacontext
2个回答
0
投票

您需要将Gridview的AllowPaging属性设置为true:

<asp:GridView ID="equipmentGrid" OnPageIndexChanging="equipmentGrid_PageIndexChanging" runat="server" AllowPaging="true">

您可能需要在 LINQ 查询上调用 ToList()。您还可以在 aspx 中设置 LINQ 数据源。


0
投票

试试这个...

protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{

    // Add here your method for DataBinding
     BindGridControl();

    gridView.PageIndex = e.NewPageIndex;
    gridView.DataBind();
 }

如果没有数据绑定方法,您将无法获得分页结果。

© www.soinside.com 2019 - 2024. All rights reserved.