2017-07-04 3 views
0

Webixデータテーブル内の複数の選択行に共通のドロップダウン値を適用する方法についてのヘルプが必要です。たとえば、 'Name'カラムの値が 'Mark'であるデータテーブルのすべての行を(Ctrl +クリックで)選択してから、それらに共通の色を適用したいとします(緑色など)。それは一度にすべての行に適用されます。Webixデータテーブル内の複数の選択された行に共通のドロップダウン値を適用する方法

スニペットはここにある:https://webix.com/snippet/1162ccd1

これを達成することができる方法上の任意のヘルプはいただければ幸いです。

ありがとうございます。

さらにこの投稿への、私は再言葉で表現し、専門家が必要条件について混乱を払拭するためには、下記のハーフウェイ・ソリューションを含めています:

それは必ずしも持っているこれらの行である必要はありません "名前を 'Mark'とします。私は例を与えるためにそれを置く。基本的には、無作為に選択された行が連続しているか不安ですが、その値がそのセルに割り当てられるように 'カラー'列のドロップダウンから共通の値を選択します(ドロップダウン内の任意の色にすることができます)それらの選択された行のカラーを選択すると行の色が変わることはありませんので、ここで必要なCSS効果はありません。

これまで、選択した行をフェッチできる以下のコードを記述しました。どのように私が選択したすべての行にデータテーブルのドロップダウンから選択した値を適用することができます)

I:

rows = $$("mytable").getSelectedId(true); 

for (i in rows) { 
    id = rows[i]; 
    item = $$("mytable").getItem(id); 

    /* below effect has to happen from the drop down of data table gui */ 
    item.id2 = "green"; //for example, it could be any value 
    } 

は誰も私を助けてくださいことはできますか?

ii)次に、データテーブルでこのコードを選択し、その値をドロップダウンから選択すると、どのようにこのコードを(どのイベントを通じて)トリガーできますか?

ありがとうございました。

答えて

1

あなたはonBeforeFilterイベントを追加することによって、このような何かを、そして(スニペットで「ID2」)のみカラーフィルタを追跡することができます。

onBeforeFilter: function(id, value, config) { 
     if (id === "id2") { 
     const selected = this.getSelectedId(true); 
     const color = this.getFilter("id2").value; 
     for (let row in selected) { 
      const item = this.getItem(selected[row]); 
      item["id2"] = color; 
      this.updateItem(item.id, item); 
     } 
     } 
    } 

サンプルはこちらhttps://webix.com/snippet/538e1ca0

あるしかし、私はこれがあると思います最高の方法ではありません。

また、表を右クリックして値を選択することで表示されるコンテキストメニューを作成することもできます。

関連する問題