如何解决"回复后,无法找到ID为X的控件,或者为同一ID分配不同的控件。在asp.net?

时间:2013-03-14 13:30:35

标签: asp.net autopostback

请帮我纠正这个错误。

  

发生错误,因为ID为“ctl81”的控件无法执行   发布后,将相同的ID分配给不同的控件   背部。如果未分配ID,请显式设置ID属性   用于引发回发事件的控件以避免此错误

通过单击asp按钮在帖子上发生此错误。页面中的所有控件都是动态生成的。我试图在页面源中找到这个控件但是徒劳无功。

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

3 个答案:

答案 0 :(得分:3)

由于按钮单击导致出现错误,因此可能已从相应的表单中清除了在单击按钮之前生成的控件。因此,我建议您通过在button_click()方法上固定断点来查看按钮单击后写入的方法或代码。 试试这个,请回复。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

显然,AutoID模式存在以下问题:来自代码的ID与渲染的id属性不匹配。

我倾向于不更改渲染阶段,因为控件广泛用于大型项目中,许多功能依赖于它的工作原理。 相反,我已明确设置ID以确保它是唯一的,并且不同于可以自动设置的任何内容。它有所帮助。