我想要实现的想法是将数据表嵌入到表单中。
目前,表单充当容器。到目前为止,没有任何问题,但如果忽略数据表的name
属性。数据表不属于elements
形式。 AFAICS以下配置非常常见:
{
view:"form",
elements:[
{ view:"text", name:"inp1", value:"Test input" },
{ view:"datatable", name:"formDT", autoConfig:true, data:grid_data }
]
}
但如果在dataForm.elements
我只看到输入。
理想情况下,我希望通过表单的setValues
和getValues
方法获取并设置数据表选择。或者我是否需要编写自己的方法来分别从输入和数据表中收集数据?以前有人遇到过这样的任务吗? TIA。
答案 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);
更新了代码段: