浏览器:IE 9
上下文:填充了可编辑,可排序(服务器端)的KendoUI网格。
问题:目标是在有任何未保存的更改时弹出消息。
网格的数据源无法捕获编辑。数据项的脏属性为false。 Kendo UI网格始终对列进行排序。我一直无法找到拦截排序事件的方法并警告用户并取消排序事件。
感谢任何帮助。
答案 0 :(得分:0)
版本:kendoui.aspnetmvc.2013.2.716
要取消排序事件,请在数据源的requestStart事件中调用event.preventDefault()。
如果
,则数据源的hasChanges()方法返回false如果删除了Reorderable设置,则datasource的hasChanges()方法返回true。 打开此问题的支持服务单。
与此同时,如果您想在用户编辑单元格并单击列标题时使用hasChanges()方法捕获编辑,请不要将Reorderable设置为true。
答案 1 :(得分:0)
以下是展示KendoUI Grid issue
的视频Telerik的回应
基本上这种情况正在发生,因为重新排序使用的事件是mousedown事件。 触发mousedown事件时,模型仍未更新。
作为解决方法,我可以建议您使用以下解决方案:
初始化Grid后将其放在脚本块中。这样,如果网格仍处于编辑模式,无论您是否进行了更改,都将阻止拖动。
$(function () {
var gr = $('#Grid').data().kendoGrid;
gr.thead.on('mousedown', function (e) {
if (gr.tbody.find('.k-edit-cell').length) {
e.stopImmediatePropagation()
}
});
})