我在内联 GridEditMode 和 GridInsertRowPosition 中使用剑道网格设置为底部。Ajax 用于数据绑定。启用排序并按 DateTime 字段排序。页面大小设置为 10。
当有多个页面(超过 10 条记录)时会出现问题。我有一个 javascript 函数可以跳转到最后一页并在底部显示新行。但是在某些时候触发了排序事件,并且网格移动到只读模式。
是否有可能仅在添加新行的情况下阻止网格排序?
欢迎任何帮助。谢谢!
我在内联 GridEditMode 和 GridInsertRowPosition 中使用剑道网格设置为底部。Ajax 用于数据绑定。启用排序并按 DateTime 字段排序。页面大小设置为 10。
当有多个页面(超过 10 条记录)时会出现问题。我有一个 javascript 函数可以跳转到最后一页并在底部显示新行。但是在某些时候触发了排序事件,并且网格移动到只读模式。
是否有可能仅在添加新行的情况下阻止网格排序?
欢迎任何帮助。谢谢!
您应该在工具栏中定义一个自定义命令:
toolbar : [
{
name : "my-create",
text : "Add new record"
}
],
然后,向它添加一个事件侦听器,使用 as 选择器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/
是否有可能仅在添加新行的情况下阻止网格排序?
在添加按钮处理程序中使用下一个代码:
var table = $("#gridId").data("kendoGrid");
var sorting = table.dataSource.sort();
if (sorting) {
table.dataSource.sort(null);
}
table.addRow();
排序将被删除,新项目将处于编辑模式。
如果是 MVC Kendo Grid,则附加.CreateAt(GridInsertRowPosition.Bottom)属性。下面是示例行,
.Editable(e => e.Mode(GridEditMode.InCell).CreateAt(GridInsertRowPosition.Bottom))