This example shows how to bind Telerik Grid for ASP.NET MVC to web services.

You need to configure the grid via the DataBinding method

<%= Html.Telerik().Grid<Order>()
        .Name("AsmxGrid")
        .DataBinding(dataBinding => dataBinding.WebService().Select("~/Models/Orders.asmx/GetOrders"))
        .Columns(columns =>
        {
           columns.Bound(o => o.OrderID).Width(81);
           columns.Bound(o => o.Customer.ContactName).Width(200);
           columns.Bound(o => o.ShipAddress);
           columns.Bound(o => o.OrderDate).Format("{0:MM/dd/yyyy}").Width(100);
        })
        .Sortable()
        .Pageable()
        .Filterable()
        .Scrollable()
%>

The web service method should have a parameter of type GridState which represents the current grid state - page, sort, filter and group expressions.

The web service method may return the GridModel object or any other object which has a Data and Total properties. To benefit from the built-in Linq expression engine you can use the ToGridModel extension method:

[WebMethod]
public GridModel GetOrders(GridState state)
{
    NorthwindDataContext northwind = new NorthwindDataContext();

    return northwind.Orders.ToGridModel(state);
}