作为全功能表单元素的数据表

A datatable as the full-featured form element

我想要实现的想法是将数据表嵌入到表单中。

目前,表单充当容器。到目前为止没有任何问题,但如果忽略数据表的 name 属性。数据表不属于 elements 形式。 AFAICS 以下配置很常见:

{
  view:"form",
  elements:[
    { view:"text", name:"inp1", value:"Test input" },    
    { view:"datatable", name:"formDT", autoConfig:true, data:grid_data }
  ]
}

http://webix.com/snippet/7b7a8f2e

但是如果在 dataForm.elements 我只看到输入。

理想情况下,我想通过表单的 setValuesgetValues 方法获取和设置数据表选择。或者我是否需要编写自己的方法来分别从输入和数据表中收集数据?以前有人遇到过这样的任务吗? TIA.

这里自定义组件草稿继承datatable但支持getValue setValue 以充当表单输入:

webix.protoUI({
  name: "datatableInput",
  defaults: {
  },

  $init: function(config) {

  },

  // Define component value (used by form setValues)
  setValue: function(value) {
    console.log('setValue');
    this.clearSelection();
    if (value) this.select(value);
  },
  // Get component value (used by form getValues)
  getValue: function() {
    console.log('getValue');
    var item = this.getSelectedItem();
    if (item) return item.id;
  }

}, webix.ui.datatable);

更新的代码段:

http://webix.com/snippet/f952f35e