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