- - PR -
カスタムコントロールの入れ子でイベントが取得できない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-06-01 21:49
皆様お疲れ様です。
現在 VS2005のASP.NETを使用して開発を行っています。 カスタムコントロール(仮にA)を作成し、その中でボタンコントロールを動的追加しています。 このボタンに以下のような感じでイベントを追加してます。 Private mBtn As Button Protected Overrides Sub CreateChildControls() mBtn = New Button AddHandler mBtn.Click, AddressOf BtnClick Controls.Add(mBtn) End Sub Private Sub BtnClick(ByVal sender As Object, ByVal e As EventArgs) Debug.Print("イベント走った") End Sub で、フォーム上にこのAを置く分にはイベントが正しく走るのですが、 別のカスタムコントロール(仮にB)にこのAを置いてしまうと、(Bの中にAを入れ子にして使用すると) Aで動的追加したボタンのイベントが走らなくなります。 Debug.Printの部分にブレークポイントを設定しても止まらないし。 しかしポストバックは発生するんです。 なにか指定が必要なのでしょうか? 調査の仕方が悪いのか、どうも解を得られなくて困っています。 よろしくお願いします。 [ メッセージ編集済み 編集者: 千秋 編集日時 2008-06-01 21:55 ] [ メッセージ編集済み 編集者: 千秋 編集日時 2008-06-01 21:56 ] |
|
投稿日時: 2008-06-12 21:37
ポストバックが発生するのは、Button が type=submit な input 要素になるからです。
HTML のソースを見て、カスタムコントロールのボタンの ID が何になっているか、確認してみてください。それと、ポストされたデータの、ポストバックを引き起こしたコントロールの ID が一致ししているかどうかを確認してみてください。 あとは、ポストバックの時に、引用された、イベントをハンドラを登録する処理が走っているか、確認してみてください。 それから、あと、、、なにがあるかな??? |
1