У меня есть вложенный UserControl
(этот элемент управления динамически загружается другим UserControl
, который динамически загружается страницей aspx внутри MasterPage), в котором я хотел бы использовать 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 быть вызванным. Еще одна вещь, которая может иметь отношение к этой проблеме: UserControl находится внутри UpdatePanel. Я также пытался заставить ссылку вызвать полный постбэк:
ScriptManager s = (ScriptManager)this.Page.Master.FindControl("__scriptManager");
s.RegisterPostBackControl(link);
... но это мало что меняет, страница полностью перезагружается, но событие не запускается.
РЕДАКТИРОВАТЬ: Как просили в комментариях, здесь более подробно о вложенности:
MasterPage
PlaceHolder
Page
UpdatePanel
UserControl1
FormView
PlaceHolder
UserControl2
LinkButton
Это означает, что UserControl2
загружается динамически.