2016-11-04 7 views
0

私が達成しようとしているアイデアは、データテーブルをフォームに埋め込むことです。フル機能のフォーム要素としてのデータテーブル

今のところ、フォームはコンテナとして機能します。これまでのところ問題はありませんが、無視された場合、データテーブルのプロパティーはnameです。データテーブルはフォームelementsに属していません。 dataForm.elementsで私だけの入力を見れば

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

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

しかし:AFAICSは、次の設定はかなり一般的です。

理想的には、フォームのsetValuesgetValuesのメソッドを使用して、データテーブルの選択を取得して設定したいと考えています。または、入力とデータテーブルからデータを別々に収集する独自のメソッドを作成する必要がありますか?誰もそのような仕事に直面したことはありますか? TIA。ここで

答えて

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