如何在asp.net中解决“无法找到具有id X的控件或者在回发后将相同的ID分配给不同的控件”?

问题描述 投票:3回答:3

请帮我纠正这个错误。

发生错误,因为无法找到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);
asp.net autopostback
3个回答
3
投票

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


1
投票

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


0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.