4

我在内联 GridEditMode 和 GridInsertRowPosition 中使用剑道网格设置为底部。Ajax 用于数据绑定。启用排序并按 DateTime 字段排序。页面大小设置为 10。

当有多个页面(超过 10 条记录)时会出现问题。我有一个 javascript 函数可以跳转到最后一页并在底部显示新行。但是在某些时候触发了排序事件,并且网格移动到只读模式。

是否有可能仅在添加新行的情况下阻止网格排序?

欢迎任何帮助。谢谢!

4

4 回答 4

8

查看新的剑道设置:createAt

只需将其设置为“底部”:

...
createAt: 'bottom',
...
于 2014-05-30T13:27:13.277 回答
8

您应该在工具栏中定义一个自定义命令:

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/

于 2013-05-23T11:31:30.770 回答
0

是否有可能仅在添加新行的情况下阻止网格排序?

在添加按钮处理程序中使用下一个代码:

        var table = $("#gridId").data("kendoGrid");
        var sorting = table.dataSource.sort();

        if (sorting) {
            table.dataSource.sort(null);
        }
        table.addRow();

排序将被删除,新项目将处于编辑模式。

于 2013-07-22T17:30:49.850 回答
0

如果是 MVC Kendo Grid,则附加.CreateAt(GridInsertRowPosition.Bottom)属性。下面是示例行,

.Editable(e => e.Mode(GridEditMode.InCell).CreateAt(GridInsertRowPosition.Bottom))
于 2018-11-21T14:33:32.717 回答