- - PR -
動的に生成したASPコントロールにJavaScriptを関連づける方法
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-04-04 18:30
<asp:Repeater id="Repeater1" runat="server">
<ItemTemplate> <TR> <td align="center"> <asp:button OnCommand="Button1_Click" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "COMMAND") %>' CssClass=button style="WIDTH: 20px; HEIGHT: 20px" runat="server" > </asp:button></td> </TR> </ItemTemplate> </asp:Repeater> **以上、動的にボタンを生成している部分を抜粋** このような感じで、ASPボタンコントロールを動的に生成しているのですが、 このボタンコントロールにJavaScriptを関連づける方法をご存知の方 お知恵をお貸しください。 Button1.Attributes.Add("onclick","return confirm('テスト');") のような感じで、関連づけようとすると当然ですが、未定義のオブジェクト で有る為、コンパイルが通りません。 動的にASPボタンコントロールをを生成してJavaScriptを関連づけられれば 代替案でも構いませんのでよろしくお願いします。 **追記** .Net Framework 2.0の場合onclientclickという属性が存在することが わかりましたが、残念ながら現在の環境は1.1です。この環境で実現する方法 についてお教えください。 [ メッセージ編集済み 編集者: TAKEZO 編集日時 2006-04-04 18:44 ] | ||||
|
投稿日時: 2006-04-04 18:52
Repeater には、各行を生成するときに発生するイベントが存在するので、そのイベント処理中に FindControl でそのボタンを取得してあげればいけるでしょう。
_________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-04-04 19:51
すみません、初歩的なところを理解できていない可能性があるのですが、
FindControlで取得できそうなのは理解できましたので生成するボタンにあらかじめ 一意になるようなIDを動的に割り振ることを考えました。 ところが、以下のような記述を行うと『'XXXX' は有効な識別子ではありません。』 というエラーが出てしまいます。動的にコントロールのIDを指定することは可能なので しょうか?よろしくお願いします。 <asp:button id='<%# 【動的にIDを生成するメソッド】%>' OnCommand="Button1_Click" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "COMMAND") %>' CssClass=button style="WIDTH: 20px; HEIGHT: 20px" runat="server" > | ||||
|
投稿日時: 2006-04-04 19:56
ID を動的に振る必要はありません。
_________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-04-04 20:08
大変恐縮です。FindControlメソッドでは引数として対象オブジェクトのIDを
要求すると思うのですが、それでIDを動的に生成してFindControlの引数にも 同じものを指定しようと考えておりました。IDを振らずにオブジェクトの参照 を取得する方法をもう少し詳しく教えて頂けると大変助かります。 よろしくお願いします。 | ||||
|
投稿日時: 2006-04-04 20:17
ID は「動的」ではなく「固定」で "ButtonId1" 等で構いません。
次に、 Button b = ( Button )Repeater1.FindControl( "Button1" ); でボタンを取得してあげてください。 最初の投稿でも言いましたが、これらは「行が生成されるイベント」で行ってください。 #Repeater でもいけたよね…。間違ってたらすみません。 _________________ 囚人@わんくま同盟 囚人のジレンマな日々 [ メッセージ編集済み 編集者: 囚人 編集日時 2006-04-04 20:18 ] | ||||
|
投稿日時: 2006-04-04 20:46
ItemDataBoundイベントにお教え頂いたコードを記述したところ
動的にJavaScriptを関連づけすることが出来ました。 最後までおつきあい頂き本当にありがとうございました。 | ||||
|
投稿日時: 2006-04-04 20:48
ClientIDでいいんじゃないでしょうか? |