【GxTips】コントロールのクラスを動的に変更する

いまだに頭がEv2のくどです。

最近、コントロールのクラスに関して個人的な気づきがあったので
クラスの動的な変更方法も含めてご紹介したいと思います。

GeneXusでクラスと呼ばれるものは、JavaC#などのクラスではなく
CSSのクラスになります。

通常、このクラスは”WebPanel”や”WebComponent”といったインタフェースの役割を持つオブジェクトのFormやパターンから指定・編集することが可能ですが
ほかにも、イベントやルールで

[ControlName].Class = “ClassName”

という形でコードとして記述することも可能なため、動的なクラスの変更が可能となっています。

 

そしてこの”動的なクラスの変更”ですが、Ev2まではクラス名を文字列として記載する方法しかなかったのですが、Ev3から(最近気づいた)

[ControlName].Class = [ThemeName]:ClassName

という記述が可能になっています。
例えば

&USER_NAME.Class = “ReadonlyAttribute”

&USER_NAME.Class = GeneXusX:ReadonlyAttribute

と記載できるようになります。

 

コード内でのクラス名の指定間違いや、クラス名を忘れた場合にテーマを開く必要が減るので気づいていなかった人は使ってみてください。