【问题标题】:Can Kendo Grid be always in edit mode?Kendo Grid 可以一直处于编辑模式吗?
【发布时间】:2013-08-20 17:27:12
【问题描述】:

有谁知道剑道网格是否可以始终设置为编辑模式?

我们不希望用户单击单元格或按钮来激活编辑模式。我们希望小部件始终显示并可用。

有可能吗?

【问题讨论】:

    标签: kendo-ui kendo-grid


    【解决方案1】:

    除了使用批量编辑模式,您还可以尝试设置每一列的模板,并使用 MVVM 将输入元素绑定到数据项。

    $("#grid").kendoGrid({
      dataSource: {
        schema: {
          model: {
            id: "id",
            fields: {
              id: { editable: false }
            }
          }
        }
        data: [
          { id:1, age: 30, name: "John Doe" }
        ]
      },
      columns: [
        { field: "id", width: 50 },
        { field: "age", template: "<input data-bind='value: age' data-role='numerictextbox'>" },
        { field: "name", template:"<input data-bind='value: name' >" }
      ],
      dataBound: function() {
        var rows = this.tbody.children();
        var dataItems = this.dataSource.view();
        for (var i = 0; i < dataItems.length; i++)  {
          kendo.bind(rows[i], dataItems[i]);
        }
      }
    });
    

    这是一个现场演示:http://jsbin.com/ApoFobA/2/edit

    【讨论】:

    • 谢谢。这是我需要的最接近的答案。
    • 也谢谢你。这对我来说非常有用,直到我启用分组并按列分组后,输入字段都被清空了。解决了一个问题,还有一个问题要解决....:)
    【解决方案2】:

    开箱即用,不完全是。您可以启用批量编辑,它会正常显示所有内容,但单击单元格会自动将其切换到编辑器。

    Example

    要启用它,请在表的数据源上设置{ batch: true }。否则,您将进行更深入的脚本编写。检查并简单地在所有行上调用editRow 不会这样做。默认行为是在新行进入编辑模式时禁用对一行的编辑。

    因此,快速查看说批处理模式 - 不会一直显示编辑器,但可以开箱即用。

    【讨论】:

      【解决方案3】:

      我发现上面的答案非常好。但一个问题是,Kendo 在刷新网格时(例如排序或过滤或调用 refresh() 时)并删除网格的 DOM 元素时不会清理绑定。结果是 dataItems 将有越来越多的“更改”事件排队 - 有点内存泄漏。这可以通过在 dataBinding 事件中取消绑定来避免,如下所示:

      dataBinding: function() {
        var rows = this.tbody.children();
        for (var i = 0; i < rows.length; i++)  {
          kendo.unbind(rows[i]);
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-27
        相关资源
        最近更新 更多