1

Possible Duplicate:
The data source does not support server-side data paging

I have a GridView that is databound to returned results using a LINQ Query. I have enabled paging on the gridview as there are about 300 records returned.

I created a search function that generates general SQL Queries and returns a result. However I get the following error when it is executed.

The data source does not support server-side data paging.

Here is my code that performs the SQL Search.

    IEnumerable<equipment> result = db.ExecuteQuery<equipment>(SQLQuery);
    equipmentGrid.DataSource = result;
    equipmentGrid.DataBind();

This is the gridview code:

<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>

And the OnPageIndexChanging function

protected void equipmentGrid_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    equipmentGrid.PageIndex = e.NewPageIndex;
    equipmentGrid.DataBind();
}

Thanks so mucH!!!!!

Community
  • 1
  • 1
gberg927
  • 1,636
  • 9
  • 38
  • 51

2 Answers2

0

You need to set the Gridview's AllowPaging property to true:

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

And you may need to call ToList() on your LINQ query. You could also setup a LINQ datasource in the aspx.

joelmdev
  • 11,083
  • 10
  • 65
  • 89
0

Try this one ...

protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{

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

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

Without the databinding method you won't get the paged result.

Glory Raj
  • 17,397
  • 27
  • 100
  • 203