This question is locked. New answers and comments are not allowed.
Model
View
Controller
public class ViewModel1{ public int ID { get; set; } public string Name { get; set; } public string Description { get; set; }}public class ViewModel2{ public ViewModel2() { ViewModel1List = new List<ViewModel1>(); } public List<ViewModel1> ViewModel1List { get; set; } public int PageSize { get; set; } public int TotalCount { get; set; }}View
@model TelerikMvcApplication1.Models.ViewModel2@{ ViewBag.Title = "Queue";}<h2>Queue</h2>@(Html.Telerik().Grid(Model.ViewModel1List) .Name("QueueGrid") .DataBinding(dataBinding => dataBinding.Server() .Select("QueueCustomBinding", "Home") ) .EnableCustomBinding(true) .Columns(columns => { columns.Bound(o => o.ID); columns.Bound(o => o.Name); columns.Bound(o => o.Description); }) .Footer(true) .Pageable(paging => paging.PageSize(Model.PageSize).Total(Model.TotalCount)) .Sortable())Controller
public ActionResult Queue(){ var viewModel = this.BuildViewModel2(); return View(viewModel);}[GridAction(EnableCustomBinding = true, GridName = "QueueGrid")]public ActionResult QueueCustomBinding(GridCommand gridCommand){ // gridCommand is NOT populated when the query string parameters are QueueGrid-size=2&QueueGrid-page=3 // gridCommand is populated when the query string parameters are size=2&page=3 // The paging links are rendered with query string parameters are QueueGrid-size and QueueGrid-page var viewModel = this.BuildViewModel2(); return View("Queue", viewModel);}public ViewModel2 BuildViewModel2(){ var viewModel2 = new ViewModel2(); viewModel2.ViewModel1List.Add(new ViewModel1 { ID = 1, Name = "Name1", Description = "Description1" }); viewModel2.ViewModel1List.Add(new ViewModel1 { ID = 2, Name = "Name2", Description = "Description2" }); viewModel2.ViewModel1List.Add(new ViewModel1 { ID = 3, Name = "Name3", Description = "Description3" }); viewModel2.ViewModel1List.Add(new ViewModel1 { ID = 4, Name = "Name4", Description = "Description4" }); viewModel2.ViewModel1List.Add(new ViewModel1 { ID = 5, Name = "Name5", Description = "Description5" }); viewModel2.PageSize = 2; viewModel2.TotalCount = viewModel2.ViewModel1List.Count; return viewModel2;}