Невозможно вызвать обработчик событий для нового элемента управления, добавленного в панель обновления после первого асинхронного обратного вызова
Поэтому я не могу вызвать событие на панели обновления после первой обратной передачи. Событие присваивается элементу управления при обратной передаче, но не работает. Код ниже - это то, что происходит в элементе управления, добавленном после обратной передачи.
//Add Delete Control
up.ContentTemplateContainer.Controls.Add(new LiteralControl("<div class=\"news_delete\">"));
LinkButton deleteLink = new LinkButton();
deleteLink.ID = item.ID.ToString();
deleteLink.Text = "Delete This News Item";
deleteLink.Click += new EventHandler(DeleteNewsItem);
up.ContentTemplateContainer.Controls.Add(deleteLink);
up.ContentTemplateContainer.Controls.Add(new LiteralControl("</div>"));
Элемент управления добавляется на панель обновления, и я вижу его, но когда я нажимаю на кнопку ссылки, он не запускает событие DeleteNewsItem. Событие можно увидеть ниже.
//OnSubmits
void DeleteNewsItem(object sender, EventArgs e)
{
SPList newsList;
SPWeb web = SPContext.Current.Web;
web.AllowUnsafeUpdates = true;
web.Update();
newsList = web.Lists["News Wire"];
SPListItemCollection items;
items = newsList.Items;
LinkButton item2Delete = (LinkButton)sender;
SPListItem item = items.GetItemById(Int32.Parse(item2Delete.ID));
item.Delete();
newsList.Update();
web.AllowUnsafeUpdates = false;
System.Web.HttpContext.Current.Response.Redirect(SPContext.Current.Web.Url);
}
Итак, еще раз я хотел бы повторить, что это работает, прежде чем я сделаю обратную передачу на панели обновления. Я имею в виду первый набор элементов, которые имеют этот элемент управления удаления и удаляют элемент списка, но когда я выполняю асинхронную обратную передачу, он никогда не запускает событие, когда я щелкаю по нему. Я установил точки останова, и он никогда не достигнет этого (события). Интересно, связано ли это с жизненным циклом веб-части или жизненным циклом страницы. Пожалуйста, помогите кому-нибудь. Кстати, это не визуальная веб-часть, а веб-часть.
1 ответ
Это действительно проблема жизненного цикла. Взгляните на следующий пост, который объяснит вашу проблему и возможный обходной путь: ASP.Net Динамическое заполнение элементов управления при обратной передаче
Следующий пост также может дать обходной путь для этой проблемы.