65.9K
CodeProject is changing. Read more.
Home

Solution: The Data Source Does Not Support Server-side Data Paging with GridView

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.89/5 (4 votes)

Sep 28, 2014

CPOL
viewsIcon

19088

Solution for error: "The data source does not support server-side data paging with GridView"

While working with GridView, I faced an issue while binding the data to GridView. The error message read as “The data source does not support server-side data paging.“. Initially, I thought this was related to paging functionality of the GridView and looked into that, but that was not the solution. After doing a bit of search, I found the reason of this error was the way a source is bound to the GridView. I will explain it to you here.

Initially, this was my LoadData().

private void LoadData()
{
    ProductInventory[] lines = GetData();
    grdRows.DataSource = lines.Where(t => t.ProductID.StartsWith(tbSearch.Text));
    grdRows.DataBind();
}

Here, I am trying to get some data based on a filter using LINQ and applying it directly to the GridView. This was the main reason of the error. I just converted this resultset to a List using ToList() and voila, it works. The modified LoadData looks like below:

private void LoadData()
{
    ProductInventory[] lines = GetData();
    grdRows.DataSource = lines.Where(t => t.ProductID.StartsWith(tbSearch.Text)).ToList();
    grdRows.DataBind();
}

In technical words from StackOverflow, “You can’t use an IQueryable object to data bind to a GridView and still use Paging and Sorting. You must return a List to the GridView using the ToList() method.

Hope you like this! Keep learning and sharing! Cheers!