Hi, I'm try to use Kendo grid follow demos This --> http://demos.kendoui.com/web/grid/editing-popup.html
But Gird cann't Bind data
Follow Controllers, and cshtml
But Gird cann't Bind data
Follow Controllers, and cshtml
public ActionResult Section()
{ return View(); } public ActionResult EditingPopup_Read([DataSourceRequest] DataSourceRequest request) { return Json(db.Sections.Where( s=>s.IsPublished == true).ToList().ToDataSourceResult(request)); } [AcceptVerbs(HttpVerbs.Post)] public ActionResult EditingPopup_Create([DataSourceRequest] DataSourceRequest request, Section section) { if (section != null && ModelState.IsValid) { db.Sections.Add(section); db.SaveChanges(); } return Json(new[] { section }.ToDataSourceResult(request, ModelState)); } [AcceptVerbs(HttpVerbs.Post)] public ActionResult EditingPopup_Update([DataSourceRequest] DataSourceRequest request, Section section) { if (section != null && ModelState.IsValid) { var target = db.Sections.FirstOrDefault( s => s.SectionID == section.SectionID); if (target != null) { target.Name = section.Name; target.Description = section.Description; db.Entry<Section>(section).State = System.Data.EntityState.Modified; db.SaveChanges(); } } return Json(ModelState.ToDataSourceResult()); } [AcceptVerbs(HttpVerbs.Post)] public ActionResult EditingPopup_Destroy([DataSourceRequest] DataSourceRequest request, Section section) { if (section != null && ModelState.IsValid) { var target = db.Sections.FirstOrDefault(s => s.SectionID == section.SectionID); if (target != null) { target.IsPublished = false; db.Entry<Section>(section).State = System.Data.EntityState.Modified; db.SaveChanges(); } } return Json(ModelState.ToDataSourceResult()); }
@(Html.Kendo().Grid<MVC4Kendo.Models.Section>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.Name);
columns.Bound(p => p.Description).Width(100);
columns.Bound(p => p.IsPublished).Width(100);
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(160);
})
.ToolBar(toolbar => toolbar.Create())
.Editable(editable => editable.Mode(GridEditMode.PopUp))
.Pageable()
.Sortable()
.Scrollable()
.HtmlAttributes(new { style = "height:430px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Events(events => events.Error("error_handler"))
.Model(model => model.Id(p => p.SectionID))
.Create(update => update.Action("EditingPopup_Create", "Grid"))
.Read(read => read.Action("EditingPopup_Read", "Grid"))
.Update(update => update.Action("EditingPopup_Update", "Grid"))
.Destroy(update => update.Action("EditingPopup_Destroy", "Grid"))
)
)
<script type="text/javascript">
function error_handler(e) {
if (e.errors) {
var message = "Errors:\n";
$.each(e.errors, function (key, value) {
if ('errors' in value) {
$.each(value.errors, function () {
message += this + "\n";
});
}
});
alert(message);
}
}
</script>