Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在第一次异步回调后,无法对添加到更新面板的新控件调用事件处理程序_C#_Sharepoint_Event Handling_Updatepanel_Web Parts - Fatal编程技术网

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