因此,第一次回发后,我无法在更新面板上调用事件。该事件在回发时分配给控件,但不起作用。下面的代码是回发后添加的控件中发生的情况。
//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 部件生命周期或页面生命周期有关。请有人帮忙。顺便说一句,这不是一个可视化的 Web 部件,但它是一个 Web 部件。