You need to sign in to do that
Don't have an account?

repeat内のid取得について
いつもお世話になっています。岡野と申します。
もしご存じの方がいらっしゃいましたら教えてください。
visualforceのrepeatタグ内でイテレートされたvidualforceタグのidには、レンダリング時に"~:0:id名"のようなidが付与されると思います。
これを$Componentで取得できるような方法はありませんでしょうか?
repeat内で"{!$Compnent.id}"のようにしても空文字が入ってしまいます。確かに当然という気もしますが・・・。
$Componentで一度に取得できなくても、何かベストプラクティスのような方法があれば教えていただければ幸いです。
以上、よろしくお願いいたします。
岡本さん。ご回答ありがとうございます。
はい、おっしゃる通りjavaScriptで対象タグのDOM操作を行いたいため今回の質問をさせて頂きました。
そしてやはり簡単にはできそうにないのですね。repeatタグのスコープ内でonchange="script('{!$Component.id}')"というように指定するとイテレートのインデックスが付加されたIDが入れば良いなあ、と期待していましたw
今回はjavaScriptのメソッド内でiDを組み立てて実現させたいと思います。
岡本さん、ありがとうございました!
All Answers
岡野さん
こんにちわ。岡本です。
ご質問内でご認識されている通りイタレーション時にコンポーネントのID値を$Componentによって取得する事はできません。
また、レンダリング時には "親componentID値:イタレーション番号:ID値"のIDが付与されます。
英語ですがリファレンスドキュメント内のIterating with Component IDsの部分にあります。(すでにご覧になってると思いますが)
http://www.salesforce.com/us/developer/docs/pages/Content/pages_best_practices_accessing_id.htm
恐らくJQuery等からDOM操作する際にIDが必要なのだと予想していますが、
現状ですとこのIDの付与法則を使って直接アクセスする以外に無いかと思われます。
岡本さん。ご回答ありがとうございます。
はい、おっしゃる通りjavaScriptで対象タグのDOM操作を行いたいため今回の質問をさせて頂きました。
そしてやはり簡単にはできそうにないのですね。repeatタグのスコープ内でonchange="script('{!$Component.id}')"というように指定するとイテレートのインデックスが付加されたIDが入れば良いなあ、と期待していましたw
今回はjavaScriptのメソッド内でiDを組み立てて実現させたいと思います。
岡本さん、ありがとうございました!