Events 剑道MVC网格保存事件未触发

Events 剑道MVC网格保存事件未触发,events,grid,kendo-asp.net-mvc,Events,Grid,Kendo Asp.net Mvc,我在一个支持行重新排序的模板中有一个剑道MVC网格。发生这种情况时,我可以成功地拖放行并捕获事件(请参见下面的处理程序),但除非我还编辑网格中的一个或多个单元格,否则单击“更新”按钮时不会触发“保存”事件 拖放处理程序确实设置了受影响的模型的“脏”标志,但这似乎并没有减少它: function onChangeEnumValueOrder(e) { var uid = $(e.draggableEvent.currentTarget).data("uid"); var model

我在一个支持行重新排序的模板中有一个剑道MVC网格。发生这种情况时,我可以成功地拖放行并捕获事件(请参见下面的处理程序),但除非我还编辑网格中的一个或多个单元格,否则单击“更新”按钮时不会触发“保存”事件

拖放处理程序确实设置了受影响的模型的“脏”标志,但这似乎并没有减少它:

function onChangeEnumValueOrder(e) {
    var uid = $(e.draggableEvent.currentTarget).data("uid");
    var model = $("#TheGrid").data("kendoGrid").dataSource.getByUid(uid);
    model.dirty = true; 
}
如有任何提示或提示,将不胜感激

[更新(网格定义)]

@(Html.Kendo().Grid())
.Name(“TheGrid”)
.列(列=>
{
columns.Bound(x=>x.Id).Visible(false);
columns.Bound(x=>x.Key).Visible(false);
columns.Bound(x=>x.SortOrder).Width(10).Sortable(true);
columns.Bound(x=>x.Value).Width(100);
columns.Command(Command=>Command.Custom(“删除”)。单击(“onDeleteEnumItem”))。宽度(100)。可见(true);
})
.DataSource(DataSource=>DataSource
.Ajax()
.Model(Model=>
{
Id(x=>x.Key);
model.Field(x=>x.Id).DefaultValue(Guid.Empty);
model.Field(x=>x.Value);
})
.Read(Read=>Read.Action(“GetEnumItems”、“SiteManagement”).Data(“getFieldIdEnumItemGrid”))
.Create(Create=>Create.Action(“AddEnumItem”、“SiteManagement”))
.Update(Update=>Update.Action(“UpdateEnumItem”、“SiteManagement”))
.Destroy(Destroy=>Destroy.Action(“DeleteEnumItem”、“SiteManagement”))
.Events(Events=>Events.Error(“onErrorGrid('EnumGrid')”)
)
.Editable(Editable=>Editable.DisplayDeleteConfirmation(false).Mode(GridEditMode.InCell))
.ToolBar(ToolBar=>ToolBar.Create())
.Events(Events=>Events.SaveChanges(“onSaveEnumItemGrid”)//
{
sort.SortMode(GridSortMode.SingleColumn);
sort.AllowUnsort(true);
})
)
@(Html.Kendo().Sortable())
.用于(“网格”)
.过滤器(“表>正文>正文”)
.光标(“移动”)
.HintHandler(“hintHandlerSortable”)
.PlaceholderHandler(“placeholderHandlerSortable”)
.集装箱选择器(“网格体”)
.Events(Events=>Events.Change(“onChangeEnumValueOrder”))

在您的
onChangeEnumValueOrder
中,调用
saveChanges()
,如下所示:

function onChangeEnumValueOrder(e) {
    var uid = $(e.draggableEvent.currentTarget).data("uid");
    var model = $("#TheGrid").data("kendoGrid").dataSource.getByUid(uid);
    model.dirty = true; 

    $("#TheGrid").data("kendoGrid").saveChanges();
}
<>你也可以考虑设置这样的数据:

model.set('<Property Name>', <Property Value>)
model.set(“”,)

因为这会为您设置脏标志。

您可以发布网格定义吗?完成。感谢您花时间!抱歉延迟。看起来您没有设置任何要更新的实际值。您可能需要将诸如
SortOrder
之类的属性设置为我正在执行的任何新排序值,但它仍然不可用gger“SaveChanges”处理程序。当我尝试使用$(e.DragableEvent.currentTarget)时,我得到一个异常,currentTarget未定义。我做了一些类似的工作,但我很好奇其中的区别。我已经将数据源放在单独的变量“ds”中,然后执行ds.getByUid(e.Dragable.currentTarget.data(“uid”);
model.set('<Property Name>', <Property Value>)