如何解决 asp.net 中的" a control with id X could not be located or a different control is assigned to the



请帮我纠正这个错误。

发生错误,因为id为"ctl81"的控件无法在post后将不同的控件分配给相同的ID回来。如果未分配ID,则显式设置的ID属性引发post - back事件以避免此错误的控件

在点击asp按钮返回时发生此错误。页面中的所有控件都是动态生成的。我试图在页面源代码中找到此控件,但没有找到。

    HtmlGenericControl td1 = new HtmlGenericControl("td");
    TextBox txt1 = new TextBox();
    txt1.ID = "toqty"+i.Tostring();
    td.controls.add(txt1);
    placeholder.controls.add(td);

由于单击按钮而发生错误,因此在单击按钮之前生成的控件可能已从相应的表单中清除。因此,我建议您通过在button_click()方法上固定一个断点来检查按钮单击后编写的方法或代码。

错误本身提到了解决方案。首先检查回发后是否仍将ID分配给控件。如果没有,显式设置ID属性以避免此错误

在我的情况下,类似的异常是由一个控件在Render方法中强制设置id属性,而没有将其id属性设置为相同的值引起的。

显然,AutoID模式有问题,从后面的代码ID不匹配呈现的ID属性。

我不喜欢改变渲染阶段,因为控件在一个巨大的项目中被广泛使用,许多功能依赖于它的工作。相反,我显式地设置了ID,以确保它是唯一的,并且与可以自动设置的任何内容不同。它帮助。

相关内容

最新更新