|
@Html.AntiForgeryToken()
@Html.EJS().Grid("Grid").DataSource(dm => dm.Url("Home/DataSource").InsertUrl("Home/Insert").UpdateUrl("Home/Update").RemoveUrl("Home/Delete").Adaptor("UrlAdaptor")).Columns(col =>
{
col.Field("ShipCity").HeaderText("Ship Country").Width("150").EditType("dropdownedit").Add();
}).AllowPaging().Render()
</div>
|
|
var customAdaptor = new ej.data.UrlAdaptor();
customAdaptor = ej.base.extend(customAdaptor, {
update: function (dm, keyField, value, tableName) {
return {
type: "POST",
url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,
data: JSON.stringify({
__RequestVerificationToken: document.getElementsByName("__RequestVerificationToken")[0].value,
value: JSON.stringify(value)
})
};
},
insert: function (dm, data, tableName) {
return {
type: "POST",
url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,
data: JSON.stringify({
__RequestVerificationToken: document.getElementsByName("__RequestVerificationToken")[0].value,
value: JSON.stringify(data)
})
};
}
}); |
|
[controller.cs]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Insert(OrderData value,string token)
{
//achieve your insert action here
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Update(OrderData value)
{
//achieve your udpate action here
return Json(ord);
}
|
|
window.customAdaptor = new ej.data.UrlAdaptor();
customAdaptor = ej.base.extend(customAdaptor, {
processResponse: function (data, ds, query, xhr, request, changes) {
request.data = JSON.stringify(data);
return ej.data.UrlAdaptor.prototype.processResponse.call(this,data, ds, query, xhr, request, changes)
},
insert: function (dm, data, tableName) {
return {
url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,
data: $.param({
__RequestVerificationToken: document.getElementsByName("__RequestVerificationToken")[0].value,
value: data,
table: tableName,
action: 'insert'
}),
contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
}
},
update: function (dm, keyField, value, tableName) {
return {
url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,
data: $.param({
__RequestVerificationToken: document.getElementsByName("__RequestVerificationToken")[0].value,
value: value,
table: tableName,
action: 'insert'
}),
contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
};
},
}); |
|
function load(args) {
this.dataSource.adaptor = customAdaptor;
} |
Hello Isuriya Rajan,
Thank you for the solution.
I have one problem: if I send in value a field of DateTime type, then asp.net mvc mapping system maps wrong date value.
May be, I should don't use jQuery function param?
Help me, please.
Best regards,
Andrey Kabanets
|
<script>
window.customAdaptor = new ej.data.UrlAdaptor();
customAdaptor = ej.base.extend(customAdaptor, {
processResponse: function (data, ds, query, xhr, request, changes) {
request.data = JSON.stringify(data);
return ej.data.UrlAdaptor.prototype.processResponse.call(this, data, ds, query, xhr, request, changes)
},
insert: function (dm, data, tableName) {
for (var key in data) {
if (data[key] instanceof Date) {
data[key] = data[key].toJSON(); //Convert date to ISO format
}
}
return {
url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,
data: $.param({
__RequestVerificationToken: document.getElementsByName("__RequestVerificationToken")[0].value,
value: data,
table: tableName,
action: 'insert'
}),
contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
}
},
update: function (dm, keyField, value, tableName) {
for (var key in data) {
if (data[key] instanceof Date) {
data[key] = data[key].toJSON(); //Convert date to ISO format
}
}
return {
url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,
data: $.param({
__RequestVerificationToken: document.getElementsByName("__RequestVerificationToken")[0].value,
value: value,
table: tableName,
action: 'insert'
}),
contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
};
},
});
</script>
|