I have a Kendo UI grid to which I want to pass a Model that has data in it. Whenever I do sorting or pagination, I do not want to refresh , so I am trying to do ajax
where VideoList is List<TrainingVideo> and it works this way without ajax binding, however I am trying to do Ajax
and Here is my ajax version
and controller has
I followed the demo closely but could not make it work. Do you see any discrepancies?
@using Kendo.Mvc.UI.Fluent
@model IEnumerable<
Models.TrainingVideo
>
@{
ViewBag.Title = "Video Management";
}
<
div
style
=
"margin-top: 30px;"
>
@Html.Kendo().Grid(Model).Name("WatchVideoGrid").Columns(columns =>
{
columns.Bound(x => x.Name);
columns.Bound(x => x.Description);
columns.Bound(x => x.LastUpdateDate);
columns.Command(commands => commands.Custom("EditVideoCommand")
.Text("Edit")
.DataRouteValues(route => route.Add(o => o.VideoUID).RouteKey("videoId"))
.Action("EditSelectedVideo", "Home"));
columns.Command(commands => commands.Custom("DeleteVideoCommand")
.Text("Delete")
.DataRouteValues(route => route.Add(o => o.VideoUID).RouteKey("videoId"))
.Action("DeleteSelectedVideo", "Home"));
columns.Command(commands => commands.Custom("ReplaceVideoCommand")
.Text("Replace")
.DataRouteValues(route => route.Add(o => o.VideoUID).RouteKey("videoId"))
.Action("ReplaceSelectedVideo", "Home"));
}).Pageable().Sortable().Scrollable().Filterable())
public PartialViewResult _VideoManagement()
{
Videos videos = new Videos();
return PartialView(videos.VideoList);
}
and Here is my ajax version
@Html.Kendo().Grid(Model).Name("WatchVideoGrid").Columns(columns =>
{
columns.Bound(x => x.Name);
columns.Bound(x => x.Description);
columns.Bound(x => x.LastUpdateDate);
columns.Command(commands => commands.Custom("EditVideoCommand")
.Text("Edit")
.DataRouteValues(route => route.Add(o => o.VideoUID).RouteKey("videoId"))
.Action("EditSelectedVideo", "Home"));
columns.Command(commands => commands.Custom("DeleteVideoCommand")
.Text("Delete")
.DataRouteValues(route => route.Add(o => o.VideoUID).RouteKey("videoId"))
.Action("DeleteSelectedVideo", "Home"));
columns.Command(commands => commands.Custom("ReplaceVideoCommand")
.Text("Replace")
.DataRouteValues(route => route.Add(o => o.VideoUID).RouteKey("videoId"))
.Action("ReplaceSelectedVideo", "Home"));
}).Pageable().Sortable().Scrollable().Filterable().DataSource(builder => builder.Ajax().Read(read=>read.Action("VideoListRead","Home")))
public ActionResult VideoListRead([DataSourceRequest] DataSourceRequest request)
{
Videos videos = new Videos();
return Json(videos.VideoList.ToDataSourceResult(request));
}