I'm trying to work with the RemoteSaveAdaptor for inline edit in the grid.
@Html.AntiForgeryToken()
<script>
var dmAdaptorUpdate = function (keyField, value, tableName) {
var res = this.adaptor.update(this, keyField, value, tableName);
return $.ajax($.extend({
beforeSend: ej.proxy(this._beforeSend, this)
}, res));
}
var dmAdaptorInsert = function (data, tableName) {
var res = this.adaptor.insert(this, data, tableName);
var deffer = $.Deferred();
$.ajax($.extend({
beforeSend: ej.proxy(this._beforeSend, this),
success: ej.proxy(function (record, status, xhr, request) {
record = function () {
if (data.d)
data = data.d;
return data;
};
deffer.resolveWith(this, [{ record: record, dataManager: this }]);
}, this),
error: function (e) {
deffer.rejectWith(this, [{ error: e, dataManager: this }]);
}
}, res));
return deffer.promise();
}
var adaptor = new ej.remoteSaveAdaptor().extend({
update: function (dm, keyField, value, tableName) {
var token = value.__RequestVerificationToken;
delete value['__RequestVerificationToken'];
return {
type: "POST",
url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,
data: {
__RequestVerificationToken: token,
value: value
}
};
},
insert: function (dm, data, tableName) {
var token = data.__RequestVerificationToken;
delete data['__RequestVerificationToken'];
return {
type: "POST",
url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,
data: {
__RequestVerificationToken: token,
value: data
}
};
}
})
function load(args) {
this.model.dataSource.adaptor = new adaptor();
this.model.dataSource.update = dmAdaptorUpdate;
this.model.dataSource.insert = dmAdaptorInsert;
}
</script>
<div class="panel panel-success">
<div class="panel panel-heading">
<h3 class="panel-title">Uplate provizije</h3>
</div>
<div class="panel panel-body">
@(Html.EJ().Grid<object>("gridProv")
.Datasource(ds => ds.Json((IEnumerable<object>)ViewBag.dsProvizije)
.UpdateURL("NormalUpdate")
.InsertURL("NormalInsert")
.RemoveURL("NormalDelete")
.Adaptor(AdaptorType.RemoteSaveAdaptor))
.EditSettings(edit => { edit.AllowAdding().AllowEditing().AllowDeleting().ShowConfirmDialog(true).ShowDeleteConfirmDialog(true); })
.ToolbarSettings(toolbar =>
{
toolbar.ShowToolbar().ToolbarItems(items =>
{
items.AddTool(ToolBarItems.Search);
items.AddTool(ToolBarItems.Add);
items.AddTool(ToolBarItems.Edit);
items.AddTool(ToolBarItems.Delete);
items.AddTool(ToolBarItems.Update);
items.AddTool(ToolBarItems.Cancel);
});
})
.EnableRowHover(false)
.AllowSelection(false)
.IsResponsive(true)
.Locale("hr-HR")
.EnableTouch(true)
.Columns(col =>
{
col.Field("PolProvID").HeaderText("PolProvID").IsPrimaryKey(true).Visible(false).Add();
col.Field("Datum").HeaderText("Datum").Width(100).Priority(2).Add();
col.Field("Iznos").HeaderText("Iznos").Format("{0:N2}").Width(100).Priority(2).TextAlign(TextAlign.Right).HeaderTextAlign(TextAlign.Right).Add();
}).ClientSideEvents(ev => ev.Load("load"))
)
</div>
</div>
And it renders:
There must be something I'm doing wrong...
Thanks.
Bernard.