【问题标题】:how to stop kendo grid refresh when adding a new row?添加新行时如何停止剑道网格刷新?
【发布时间】:2018-07-18 19:53:14
【问题描述】:

我有一个网格,我要在按钮单击事件上添加一个新行,我遇到的问题是在没有刷新网格的情况下添加一个新行。

我的点击事件是

$(document).on('click', '.btnAddNewArea', function (e) {
    e.preventDefault();
    StopDetailCollapse("#TabEditor");
    AddNewRowToGrid(".eagClass");
});

我的添加行功能是

function AddNewRowToGrid(gridID) {
    var grid = $(gridID).data("kendoGrid");
    //grid.AddRow();
    grid.dataSource.insert(
        0,
        {
            AreaID: -1,
            AreaName: "New Area",
            Catalog: 0
        });
}

我以为 e.preventDefault 会阻止它,但我错了。

那么,简而言之,如何在添加新行时阻止网格刷新?

【问题讨论】:

  • 这恐怕是内部行为,无法避免。

标签: jquery kendo-ui kendo-grid


【解决方案1】:

您应该使用网格的addRow 方法,而不是直接操作它的数据源(注意:它区分大小写)。当你这样做时,它不应该刷新它的内容(看起来你尝试过,但可能是大小写错误?)

【讨论】:

  • addRow 不是为此目的而制作的。
  • @chris 有“我正在向其中添加新行的网格”,这正是网格的 addRow 方法所做的。从我链接的 API 参考中:将一个空数据项添加到网格中。在“incell”和“inline”编辑模式中,将附加一个表格行。弹出窗口将以“弹出”编辑模式显示。我现在看到我可能误解了刷新的问题(我认为他的代码正在刷新数据源)
  • “向网格添加一个空数据项” 用户想要添加一个带有数据的预填充行(检查问题中的代码),而不是一个空行。
  • 也许他确实想要一个预填充的行,但这不是被问到的问题:“如何停止剑道网格刷新”......“我遇到的问题是添加一个没有网格的新行正在刷新”......“简而言之,你如何阻止网格刷新”。提供预填充行的方法是在网格数据源模式/模型/字段定义中填充defaultValue 属性。在这种情况下调用 addRow 会将预先填充的模型对象传递给网格。
猜你喜欢
  • 1970-01-01
  • 2013-08-26
  • 2016-08-08
  • 2012-11-16
  • 2015-05-07
  • 1970-01-01
  • 2017-02-24
  • 1970-01-01
相关资源
最近更新 更多