- - PR -
[ASP.NET]フォームでユーザーコントロールのイベントを拾う方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-11-08 15:41
お世話になります。
ASP.NETをVBで開発しています。 WebフォームにWebユーザーコントロールを貼り付け、 ユーザーコントロール上のボタンクリック時にイベントを発生させ、 フォーム側でそのイベントを拾う処理を行いたいのですが、 上手くイベントが拾えません。 ユーザーコントロールのボタンクリックイベントは発生し、RaiseEventまで実行しているようなのですが、Webフォームに定義したメソッドが実行されない状態です。 (デバッグで1行ずつ追っていっても、Webフォームに行かないまま終わってしまいます) 下にコードを記述します。 Webユーザーコントロール側 Public Class UserControl1 Inherits System.Web.UI.UserControl Protected WithEvents btn As System.Web.UI.WebControls.Button Public Event btnClicked(ByVal sender As System.Object, ByVal e As System.EventArgs) Private Sub btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn.Click RaiseEvent btnClicked(Me, System.EventArgs.Empty) End Sub End Class Webフォーム側 Public Class WebForm1 Inherits System.Web.UI.Page Private UC1 As New UserControl1 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load AddHandler UC1.btnClicked, AddressOf Me.Search_clicked End sub Private Sub Search_clicked(ByVal sender As Object, ByVal e As System.EventArgs) ・・・・・ End Sub End Class 何かお気付きの点、ご存知の事などありましたら、教えてください。 よろしくお願いします。 開発環境 ASP.NET(VB) VS.NET2003 Windows2000 |
|
投稿日時: 2004-11-08 17:19
Private UC1 As New UserControl1
は Protectedじゃないとまずいのでは? 私の環境では問題なく動きます。 |
|
投稿日時: 2004-11-08 17:36
burton999さん、返答ありがとうございました。
------------------------------------- Private UC1 As New UserControl1 は Protectedじゃないとまずいのでは? ------------------------------------ 早速Protectedにしてみましたが、結果は変わりませんでした。 何か他に必要なことなどありませんでしょうか? |
|
投稿日時: 2004-11-08 18:14
今まではPrivateだったのでしょうか?
Privateだと AddHandler UC1.btnClicked, AddressOf Me.Search_clicked で例外が発生しないですか?? 私の環境だとこのソースでうまくいきます。 ちゃんとデバッグできてますよね? |
|
投稿日時: 2004-11-08 18:15
Protected UC1 As UserControl1
では? |
|
投稿日時: 2004-11-08 18:19
推測ですが
UC1をPrivateで宣言していて AddHandler UC1.btnClicked, AddressOf Me.Search_clicked の個所でNULL参照で例外が発生していたため ソース内でUC1を自分でNewしてたりしていませんか? |
|
投稿日時: 2004-11-08 18:23
デザイナのユーザーコントロールのプロパティで
IDがuc1になっていないのではないでしょうか。 |
|
投稿日時: 2004-11-08 18:36
------------------------------------------------------
デザイナのユーザーコントロールのプロパティで IDがuc1になっていないのではないでしょうか。 ------------------------------------------------------ すみません、ご指摘の通り、IDをインスタンスと同名にしていませんでした。 無事、イベントを拾うことができました。 Linさん、burton999さん、todoさん、親切な返答ありがとうございました。 |
1