Я загружаю LinkButton динамически, когда пользователь нажимает на другую LinkButton. Я прикрепляю к нему обработчик событий. Когда пользователь нажимает на динамически загруженную ссылку LinkButton, событие не запускается.
Из того, что я читал, я понимаю, что это потому, что когда страница отправляет обратно, динамически загруженный элемент управления больше не существует. Похоже, я должен убедиться, что этот элемент управления воссоздан в Page_Init.
Динамически создаваемый LinkButton зависит от значения (ID продукта). Мне нужно как-то получить доступ к этому значению, чтобы я мог правильно создать элемент управления. ViewState недоступен, и я обеспокоен, если я использую Session, он может истечь, и тогда это не поможет. Есть идеи?
Кроме того, я жестко закодировал значение ID продукта только для тестирования, и это все равно не вызвало событие. Есть ли что-то еще, что мне нужно сделать?
protected void Page_Init(object sender, EventArgs e)
{
SetTabText(1, 1);
}
SetTabText вызывает SetActionLinks, который создает LinkButton:
protected Panel SetActionLinks(int prodID, int tabID) {
...
LinkButton lnkBtn = new LinkButton();
lnkBtn.ID = "lnkBtn" + rand.Next().ToString();
lnkBtn.CommandName = "action";
lnkBtn.Command += new CommandEventHandler(this.lnkAction_Command);
panel.Controls.Add(lnkBtn);
...
}
void lnkAction_Command(object sender, CommandEventArgs e)
{
LinkButton btn = (LinkButton)sender;
switch (btn.CommandArgument)
{
AddCart();
}
}