my code as blow:
function GridDataSource(gridName,path, readHandler, createHandler, updateHandler,deleteHandler, model) {
var grid = GetGrid(gridName);
var urlRead = '@Url.Content("~")' + encodeURI(path + "?handler=" + readHandler );
var urlCreate = '@Url.Content("~")' + encodeURI(path + "?handler=" + createHandler);
var urlUpdate = '@Url.Content("~")' + encodeURI(path + "?handler=" + updateHandler);
var urlDestroy = '@Url.Content("~")' + encodeURI(path + "?handler=" + deleteHandler);
if (model == null)
model = { id: "Id" };
var dataSource = new kendo.data.DataSource({
type: "aspnetmvc-ajax",
pageSize: 1000,
serverPaging: false,
serverGrouping: false,
transport: {
read: {
url: urlRead,
data: kendo.antiForgeryTokens(),
},
create: {
url: urlCreate,
data: kendo.antiForgeryTokens(),
cache: true
},
update: {
url: urlUpdate,
data: kendo.antiForgeryTokens(),
},
destroy: {
url: urlDestroy,
data: kendo.antiForgeryTokens(),
cache: true
},
parameterMap: function (data, type) {
if (type == "create") {
// send the created data items as the "models" service parameter encoded in JSON
return { models: kendo.stringify(data.models) };
}
}
},
schema: {
data: "Data",
total: "Total",
errors: "Errors",
model: model
}
});
grid.bind("dataBound", function () {
if (grid.dataSource.data().length>0)
grid.select("tr:eq(0)");
});
grid.setOptions({
dataSource: dataSource,
persistSelection: true,
});
//grid.setDataSource(dataSource);
}
function BtnAddClientClick(e) {
var ds = GetGrid("DgClient").dataSource;
var newRow = kendo.observable({
Id: Guid(),
Clientname: "xxxxx",
Status: "Draft",
Comments: ""
});
var dataItem = ds.insert(0, newRow);
ds.sync();
}
public ActionResult OnPostAddClient([DataSourceRequest]DataSourceRequest request, Cmclient client)
{
var data = Request.Form;
var id = data["Id"][0];
return new JsonResult("OK");
//ds.Cmclient.Add(client);
//ds.SaveChanges();
//return new JsonResult(new[] { client }.ToDataSourceResult(request, ModelState));
}
not work. why? please help.