Невозможно вызвать обработчик событий для нового элемента управления, добавленного в панель обновления после первого асинхронного обратного вызова

Поэтому я не могу вызвать событие на панели обновления после первой обратной передачи. Событие присваивается элементу управления при обратной передаче, но не работает. Код ниже - это то, что происходит в элементе управления, добавленном после обратной передачи.

                    //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 Динамическое заполнение элементов управления при обратной передаче

Следующий пост также может дать обходной путь для этой проблемы.

Другие вопросы по тегам