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

时间:2016-11-04 16:59:16

标签: javascript forms datatable selection webix

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

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

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

here

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

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

1 个答案:

答案 0 :(得分:1)

这里的自定义组件草稿继承了数据表但支持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