前編にてユーザーコントロールオブジェクトの概要や作り方の流れについて投稿しました。
後編は利用方法や制限事項などを記載します。
利用方法
Web Formエレメント
これまでのユーザーコントロールと同じく、Web Formエレメントのツールボックスからドラックアンドドロップで配置できます。
ツールボックスの最下部のKB名のセクションの中に、保存したユーザーコントロールがあります。
Eventsエレメント
プロパティ
通常のコントロールと同じように、コントロール名.プロパティ名で値を設定することができます。
UserControl1.UserName = &UserName
イベント
ユーザーコントロールオブジェクトのPropertiesのEventタグのName属性で定義した名称が、コントロールのイベントとして利用できます。
Event UserControl1.onClick UserControl1.hello() EndEvent
制限事項
これまでの内容から気づかれているかと思いますが、ユーザーコントロールオブジェクトで作成したユーザーコントロールは、Webアプリケーション限定で使用できます。
今のところスマートデバイスでは使えません。
優れている点
ユーザーコントロールオブジェクトの類似のオブジェクトとして、UIの再利用という点ではWebコンポーネントやステンシルがあります。
JavaScriptとの連携は、外部オブジェクトでも可能です。
これらのオブジェクトよりもユーザーコントロールオブジェクトが優れている点は、JavaScriptとUIの定義が1つのオブジェクト内で完結できるところではないでしょうか。
また、外部オブジェクトでJavaScriptを実行する場合、GeneXus上からイベントとして実行できるようにするにはひと手間かかりますし、ライブラリやフレームワークと連携する場合にも、ユーザーコントロールオブジェクトの方が優れているように思えます。
逆にJavaScriptを実行しないのであれば、ほとんどのケースではユーザーコントロールオブジェクト以外で実装した方が良さそうです。
まとめ
これまでユーザーコントロールの作成は敷居が高くて諦めていましたが、いくつかのプロジェクトで共通的に使うような機能で、ユーザーコントロールオブジェクトで作成するとメリットが出そうな場合、作成していきたいと思います。