とイベントを使用したいネストされたUserControl
(このコントロールは、MasterPage内のaspxページによって動的にロードされる別のコントロールによって動的にロードされます)があります。UserControl
LinkButton
OnCommand
このボタンは一部のパネルに追加する必要があるためOnLoad
、パネルのイベントに接続しました(ライフサイクルでイベントが発生する前に作成する必要があります):
protected void PatentAssignee_Load(object sender, EventArgs e) {
Label label = (Label)sender;
LinkButton link = new LinkButton();
link.Text = name;
link.Command += Link_OnCommand;
link.CommandArgument = "argument";
link.ID = "someID";
label.Controls.Add(link)
}
protected void Link_OnCommand(object sender, CommandEventArgs e) {
Response.Write(e.CommandArgument);
}
しかし、Link_OnCommandメソッドを呼び出すことができません。この問題に関連するもう1つのことは、UserControlがUpdatePanel内にあることです。また、リンクトリガーを完全なポストバックにしようとしました:
ScriptManager s = (ScriptManager)this.Page.Master.FindControl("__scriptManager");
s.RegisterPostBackControl(link);
...しかし、あまり変更はありません。ページは完全にリロードされますが、イベントは発生しません。
編集:コメントで要求されたように、ここにネストについての詳細があります:
MasterPage
PlaceHolder
Page
UpdatePanel
UserControl1
FormView
PlaceHolder
UserControl2
LinkButton
これは、UserControl2
が動的にロードされることを意味します。