Kendo grid在最后一页,最后一行位置插入新记录

时间:2013-05-23 02:45:18

标签: kendo-ui kendo-grid kendo-asp.net-mvc

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

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

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

欢迎任何帮助。 谢谢!

4 个答案:

答案 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)

查看新的剑道设置:createAt

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

...
createAt: 'bottom',
...

答案 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))