Repeaterの中にTextBox項目があり、
その項目を利用してイベントをおこしたいと思った事ありませんか?
buttonと同じ要領で
Repeater内にOnItemCommandを設定して、
TextBoxにAutoPostBack="True"を設定する。
これで出来そうですが、実はできません。
OnItemCommandではbuttonのイベントしかひろってくれないので
以下のやり方を行います。
1:ItemDataBoundでテキストチェンジイベント発生時にダミーボタンを押す
というJavaScript作成を行う。
2:テキストチェンジイベントが行われダミーボタンが押されたら
Private Sub Myrpt(ByVal sender As System.Object, ByVal e As RepeaterCommandEventArgs)
にテキストチェンジが行われた後の処理を書く。
これでRepeater内のテキストチェンジイベントも実行できます。
コメント (2)
お久しぶりです。参考にさせて貰ってます。
他の方法も浮かんだので、記述させて貰います。
1.Repeater内のイベントを発生させたいTextBoxを定義
<asp:TextBox ID="TextBox1" Runat="server" AutoPostBack="True" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
2.インスタンスを参照させる
Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
3.イベントを記述する
Protected Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Dim wk As String = CType(sender, TextBox).ClientID
End Sub
と、RepeaterのItemCommandに拘らなければこのような手法もあります。
ご参考程度に如何でしょう。
投稿者: obama | 2005年6月 3日 18:18
obamaさん、ほんとにお久しぶりです!
コメントありがとうございます。
JavaScriptに頼らない分、こちらのほうがスマートですね。
かつ、.NETとしては正しいように思います。
早速参考にさせていただきます。ありがとうございました。
投稿者: naka | 2005年6月 6日 20:24