Kendo ui 剑道网格在最后一页、最后一行位置插入新记录

Kendo ui 剑道网格在最后一页、最后一行位置插入新记录,kendo-ui,kendo-grid,kendo-asp.net-mvc,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我在内联GridEditMode中使用剑道网格,并将GridInsertRowPosition设置为底部。 Ajax用于数据绑定。排序已启用,并按日期时间字段排序。 页面大小设置为10 当有多个页面(超过10条记录)时出现问题。我有一个javascript函数,可以跳到最后一页,并在底部显示新行。但在某一点上,会触发排序事件,网格将移到只读模式 是否有可能仅在添加新行的情况下防止网格排序 欢迎任何帮助。 谢谢大家! 您应该在工具栏中将自定义命令定义为: toolbar : [ {

我在内联GridEditMode中使用剑道网格,并将GridInsertRowPosition设置为底部。 Ajax用于数据绑定。排序已启用,并按日期时间字段排序。 页面大小设置为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());
请注意,我们应该在插入行后移到最后一页。对于按日期排序的列,这应该是可以的

请在此处检查代码:

是否有可能仅在以下情况下防止网格排序: 是否添加了新行

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

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

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

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

查看新剑道设置:

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

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

如果是MVC剑道网格,请附加.CreateAt(GridInsertRowPosition.Bottom)属性。下面是示例行

.Editable(e => e.Mode(GridEditMode.InCell).CreateAt(GridInsertRowPosition.Bottom))

在最后一页的底部插入新行是可行的。但行不保持编辑模式。在编辑行中显示新行后,立即调用databound事件,这将导致退出编辑模式并重新绑定网格。我遗漏了什么吗?在
dataBound
handler中你是怎么做的?我无法复制它。尝试删除代码(只留下一些警报或console.log),然后重试。OP有一个MVC标记。他们应该使用内置的扩展方法来实现这一点。然后您可以使用.ToolBar(t=>{t.Create().Text(“Create”);})检查您的示例是否工作不正常。只需单击coulmn头的名字一次,然后单击添加新记录按钮。这是正确的答案。如果使用Razor语法:.Editable(Editable=>Editable.CreateAt(GridInsertRowPosition.Bottom))对我来说也是现成的!