I am having a problem with Kendo UI Grid. I am able to read data from the server. But when I update, create or delete a row in the grid, it is redirecting only to “Create”. Below is my code in jQuery/JS and ASP.NET :
.CSHTML CODE
…
$("#employeesGrid").kendoGrid({
toolbar: ["create"],
// dataSource: myDataSource2,
dataSource: new kendo.data.DataSource({
transport: {
read: { url: "@Url.Action("GetEmployeesList","Employee")" },
update: {url: "@Url.Action("UpdateEmployee", "Employee")" },
destroy: { url: "@Url.Action("DeleteEmployee", "Employee")" },
create: {url: "@Url.Action("CreateEmployee", "Employee")" }
},
schema: {
model: {
fields: {
FirstName: { editable: false},
DOB: { type: "date"},
Created: {type: "date" },
Updated: {type: "date" },
}
}
},
pageSize : 3,
serverPaging : true
}),
columns: [
{ field: "FirstName", title: "First Name" },
{ field: "LastName", title: "Last Name"},
{ field: "DOB", title: "Date of Birth", format: "{0:dd/MM/yyyy}" },
{
field: "Role", title: "Role", values: [
{ text: "Software Engineer", value: "Software Engineer"},
{ text: "Team Lead", value: "Team Lead"},
{ text: "Project Manager", value: "Project Manager"},
{ text: "Technical Architect", value: "Technical Architect"},
{ text: "Other", value: "Other"}
]
},
{ field: "Enabled", title: "Enabled" },
{ command: ["edit", "destroy"], title: " ", width: "172px" }
],
filterable: true,
sortable: true,
pageable: true,
editable: "popup"
});
});
…
ASP.NET Controller Code :
[HttpGet]
public JsonResult GetEmployeesList(int take, int skip, int page, int pageSize)
{
var em = (from e in es.Find()
select e.ToModel()).Skip(skip).Take(take).ToList();
return Json(em, JsonRequestBehavior.AllowGet);
}
public JsonResult UpdateEmployee(EmployeeModel empModel)
{
…
}
public JsonResult CreateEmployee(EmployeeModel empModel)
{
…
}
public JsonResult DeleteEmployee(EmployeeModel empModel)
{
…
}
I placed breakpoints, the kendo ui grid code only goes to CreateEmployee method for create, update and delete operations.
.CSHTML CODE
…
$("#employeesGrid").kendoGrid({
toolbar: ["create"],
// dataSource: myDataSource2,
dataSource: new kendo.data.DataSource({
transport: {
read: { url: "@Url.Action("GetEmployeesList","Employee")" },
update: {url: "@Url.Action("UpdateEmployee", "Employee")" },
destroy: { url: "@Url.Action("DeleteEmployee", "Employee")" },
create: {url: "@Url.Action("CreateEmployee", "Employee")" }
},
schema: {
model: {
fields: {
FirstName: { editable: false},
DOB: { type: "date"},
Created: {type: "date" },
Updated: {type: "date" },
}
}
},
pageSize : 3,
serverPaging : true
}),
columns: [
{ field: "FirstName", title: "First Name" },
{ field: "LastName", title: "Last Name"},
{ field: "DOB", title: "Date of Birth", format: "{0:dd/MM/yyyy}" },
{
field: "Role", title: "Role", values: [
{ text: "Software Engineer", value: "Software Engineer"},
{ text: "Team Lead", value: "Team Lead"},
{ text: "Project Manager", value: "Project Manager"},
{ text: "Technical Architect", value: "Technical Architect"},
{ text: "Other", value: "Other"}
]
},
{ field: "Enabled", title: "Enabled" },
{ command: ["edit", "destroy"], title: " ", width: "172px" }
],
filterable: true,
sortable: true,
pageable: true,
editable: "popup"
});
});
…
ASP.NET Controller Code :
[HttpGet]
public JsonResult GetEmployeesList(int take, int skip, int page, int pageSize)
{
var em = (from e in es.Find()
select e.ToModel()).Skip(skip).Take(take).ToList();
return Json(em, JsonRequestBehavior.AllowGet);
}
public JsonResult UpdateEmployee(EmployeeModel empModel)
{
…
}
public JsonResult CreateEmployee(EmployeeModel empModel)
{
…
}
public JsonResult DeleteEmployee(EmployeeModel empModel)
{
…
}
I placed breakpoints, the kendo ui grid code only goes to CreateEmployee method for create, update and delete operations.