C# ID为的LinkButton不会导致回发,但不会

C# ID为的LinkButton不会导致回发,但不会,c#,asp.net,C#,Asp.net,问题: 当我单击我的链接按钮时,表单被提交,但它不执行回发功能。它也不执行单击功能。这两个人根本不会被击中 解决方法 从linkbutton中删除ID。在这种情况下,将执行click函数。 该按钮是通过以下代码动态添加的: LinkButton l=新建LinkButton(); l、 CssClass=“子句显示模块框”; l、 单击+=条款按钮\u单击; l、 可见=真实; l、 ID=“LinkButton_0”; l、 Text=“C”; 编辑:我将ID更改为静态字符串,以便在回

问题:
当我单击我的链接按钮时,表单被提交,但它不执行回发功能。它也不执行单击功能。这两个人根本不会被击中

解决方法
从linkbutton中删除ID。在这种情况下,将执行click函数。
该按钮是通过以下代码动态添加的:

LinkButton l=新建LinkButton();
l、 CssClass=“子句显示模块框”;
l、 单击+=条款按钮\u单击;
l、 可见=真实;
l、 ID=“LinkButton_0”;
l、 Text=“C”;
编辑:我将ID更改为静态字符串,以便在回发时保证ID相同

编辑2:从下面的评论来看:我的页面初始化和页面加载在回发时也不会执行,但是当我省略按钮的ID时,它们会正确执行

编辑3:我确信这个问题与我的代码有关,因为它没有发生在其他页面上。因此,我遗漏了两个重要的细节:

  • 该页面有一个母版页
  • 内容是在updatepanel中呈现的

  • 有关解决方案,请参见下面的答案。

    您必须使用与以前相同的ID,否则不会触发事件

    LinkButton l = new LinkButton();
    l.CssClass = "clause show-modalbox";
    l.Click += clauseButton_Click;
    l.Visible = true;
    l.ID = "LinkButton_" + consecutiveNumber.ToString();
    l.Text = "C";
    

    我的问题的解决方案是,在关联的母版页上存在一个脚本管理器,EnablePartialRendering=true。一旦我把它改成假的,就像下面一样,一切都成功了

    <ajaxToolkit:ToolkitScriptManager ID="ScriptManagerMasterPage" runat="server" EnablePageMethods="true" EnablePartialRendering="false"></ajaxToolkit:ToolkitScriptManager>
    
    
    
    我刚刚尝试更改l。单击+=条款按钮\u单击;to l.Click+=新事件处理程序(clauseButton_Click);没有成功您是否每次都使用
    .NewGuid()
    动态创建控件?这不会有什么帮助,它必须和帖子背面的内容相同。@freefaller我根据你的评论编辑了我的帖子和代码。这没有什么区别你是在帖子背面添加动态控件吗?是的,我是,奇怪的是,当单击控件时,page_init和page_load甚至都没有执行。在我的页面加载中,我将控件重新添加到页面。我尝试了以下方法:将循环限制为仅执行一次,将ID更改为LinkButton\0。仍然没有。有时最奇怪的问题有easiests修复程序:在页面上,我启用了一个启用部分呈现的scriptmanager,一旦我禁用了它,页面加载功能以及单击功能就会触发。