第一次异步回调后,无法对添加到更新面板的新控件调用事件处理程序



所以我无法在第一次回发后在更新面板上调用事件。该事件在回发时分配给控件,但不起作用。下面的代码是回发后添加的控件中发生的情况。

                    //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);
    }

因此,我想再次重申,在我在更新面板上进行回发之前,它可以工作。我的意思是具有此删除控件工作并删除列表项的第一组项,但是当我执行异步回发时,当我单击它时,它永远不会运行该事件。我设置了断点,但它永远不会到达它(事件)。我想知道这是否与 Web 部件生命周期或页面生命周期有关。请有人帮忙。顺便说一下,这不是一个可视网络部件,但它是一个网络部件。

这确实是一个生命周期问题。看看下面的帖子,它将解释你的问题和可能的解决方法: ASP.Net 在回发时动态填充控件

以下帖子也可以提供该问题的解决方法。

相关内容

  • 没有找到相关文章

最新更新