【GeneXus Tips】GeneXusで複数選択可能なListBox

お久しぶりですkudoです。

皆さんはGeneXusで複数のアイテムを選択させる場合にどのような画面を作成していますでしょうか?
Gridとチェックボックスを利用して選択させていないでしょうか?

自分はGridとチェックボックスを使って選択させています!

 

でも、WebにはListBoxという複数選択が可能なコントロールがあるではないですか
・・・
・・・・・・
・・・・・・・・・
GeneXusで作成できるListBoxって複数選択できないんですけどね

 

じゃぁ複数選択可能なListBoxを作っちゃいましょう

できましたw

でも、これだと選択した値をGeneXusで利用することができません。

ならどうするか・・・JSしかないでしょ!

 

今回は、他の項目と同じようにすぐ値を利用できるよう
ListBox(Selectタグ)のOnChangeを利用してGeneXus側で用意した変数に選択されたアイテムのValueを格納します。

※%GxValue%にはGeneXusの変数のInternalNameを設定

GeneXusで記述すると以下のような形になります。

※値を利用する場合は、Splitなどを利用て値をCharcter型コレクションに変換して利用してください。

このようなJSを追加するだけで、GeneXusの変数に、選択したアイテムのValueがカンマ区切りで格納されます。
面倒なのでコードの説明は端折りますが、簡単に言うと

ListBoxの値が変わったら、Select内のOptionをチェックして、選択されているアイテムのValueを変数に足しこむ。

ということです。

 

似たようなことはチェックボックスやラジオボタンでも実装できるので
GeneXusのコントロールに嫌気がさしたら、どうぞお試しあれ

 

※IsValidとの競合があるかもしれません。
※使用する場合は自己責任でお願いします。