C# 在第一次异步回调后,无法对添加到更新面板的新控件调用事件处理程序
因此,在第一次回发之后,我无法在更新面板上调用事件。事件在回发时分配给控件,但不起作用。下面的代码是回发后添加的控件中发生的情况C# 在第一次异步回调后,无法对添加到更新面板的新控件调用事件处理程序,c#,sharepoint,event-handling,updatepanel,web-parts,C#,Sharepoint,Event Handling,Updatepanel,Web Parts,因此,在第一次回发之后,我无法在更新面板上调用事件。事件在回发时分配给控件,但不起作用。下面的代码是回发后添加的控件中发生的情况 //Add Delete Control up.ContentTemplateContainer.Controls.Add(new LiteralControl("<div class=\"news_delete\">")); LinkB
//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>"));
因此,我想再次重申,在我在更新面板上进行回发之前,它是有效的。我的意思是,第一组具有此delete控件的项可以工作并删除列表项,但是当我执行异步回发时,当我单击它时,它不会运行事件。我设置了断点,但它从未到达(事件)。我想知道这是否与web部件生命周期或页面生命周期有关。请找个人帮忙。顺便说一下,这不是一个可视的Web部件,而是一个Web部件。这确实是一个生命周期问题。请看下面的帖子,它将解释您的问题和可能的解决方法:
这篇文章还可以为这个问题提供解决方法。谢谢你的帮助。第一个解决了它。只要确保将接口添加到类中,就可以使用这些函数了。
//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);
}