我在内联GridEditMode和GridInsertRowPosition中使用kendo网格设置为bottom。 Ajax用于数据绑定。排序已启用并按DateTime字段排序。 页面大小设置为10.
当有多个页面(超过10个记录)时会出现问题。我有一个javascript函数跳转到最后一页并在底部显示新行。但是在某些点触发了排序事件,并且网格移动到只读模式。
是否有可能仅在添加新行的情况下阻止网格排序?
欢迎任何帮助。 谢谢!
答案 0 :(得分:8)
您应该在工具栏中将自定义命令定义为:
toolbar : [
{
name : "my-create",
text : "Add new record"
}
],
然后,使用选择器k-grid-
加上命令名称为其添加一个事件监听器。
$(".k-grid-my-create", grid.element).on("click", function (e) {
}
最后,我们将使用Kendo UI数据源的功能插入特定点:
var dataSource = grid.dataSource;
var total = dataSource.data().length;
dataSource.insert(total, {});
dataSource.page(dataSource.totalPages());
grid.editRow(grid.tbody.children().last());
请注意,我们应该在插入行之后移到最后一页。如果列按日期排序,这应该没问题。
请检查此处的代码:http://jsfiddle.net/OnaBai/sAVGk/
答案 1 :(得分:8)
答案 2 :(得分:0)
是否有可能仅在出现情况时阻止网格排序 新行被添加?
在添加按钮处理程序中使用下一个代码:
var table = $("#gridId").data("kendoGrid");
var sorting = table.dataSource.sort();
if (sorting) {
table.dataSource.sort(null);
}
table.addRow();
排序将被删除,新项目将处于编辑模式。
答案 3 :(得分:0)
如果它是MVC Kendo网格,请附加 .CreateAt(GridInsertRowPosition.Bottom)属性。下面是示例行,
.Editable(e => e.Mode(GridEditMode.InCell).CreateAt(GridInsertRowPosition.Bottom))