いいね!数

0

閲覧数
118

お世話になっております。

 

現在、カスタムコントロール上に、フィールドを配置しています。

フィールドはいくつかあるのですが、

このIDがカスタムコントロールを変更するたびに、変わってしまって、困っております。

<xp:inputText styleClass="form-control"
        id="list_tantoKanji" value="#{requestScope.resTantoKanji}" defaultValue="#{javascript: getKanjiName(@UserName());}">
    </xp:inputText>

上記の様にコーディングしていますが、このid=list_tantoKanjiが、xpagesが生成されると、id="view:_id1:_id50:_id189:list_tantoKanji"

となるのですが、id189の部分が、どんどんカウントアップされるのです。

 

何かご存知の方がいらしたら、ご教示いただけますでしょうか。

よろしくお願いいたします。

カテゴリ:トラブルシューティング | タグ:
  | 質問日時:Jan 30, 2017 10:08:35 AM

回答・コメント

いいね!数

0

yoshitaka_yamaさん

以前私も同じ点で悩みました。

どうもカスタムコントロールタムコントロール内では、view:_id1:_idx の形式になる仕様のようです。

回答日時:Jan 30, 2017 10:18:29 AM

いいね!数

0

ss_chさん

ご回答ありがとうございます。

view:_id1:....

この形式になるのは、わかるのですが、最後の番号が、カスタムコントロールを編集するたびに、カウントアップされてしまうので、

該当カスタムコントロール上のフィールドを参照しているJavascriptを、いちいち変更しないといけないのです。

 

何かご存知でしょうか。

よろしくお願いいたします。

回答日時:Feb 3, 2017 3:26:41 PM

いいね!数

2

CSJSの話であれば、 var listTantoKanjiItem = dojo.byId('#{id:list_tantoKanji}');
のように記述すれば、変換されたIDを展開してHTML要素を取得できますが、そういうことではないですか?

回答日時:Feb 6, 2017 10:51:29 AM

いいね!数

0

ykawa様の補足になりますが、
SSJSの場合は『getComponent("list_tantoKanji")』で、
CSJSの場合は『document.getElementById("#{id:list_tantoKanji}").value;』で
取得できると思いますが、如何でしょうか?

回答日時:Feb 9, 2017 11:58:47 AM