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

3 回答 3

3

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

于 2013-03-14T13:48:38.580 回答
1

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

于 2013-03-14T14:15:22.183 回答
0

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

显然,AutoID 模式存在问题,即后面代码中的 ID 与呈现的 id 属性不匹配。

我宁愿不更改渲染阶段,因为该控件广泛用于大型项目,并且许多功能都依赖于它按原样工作。相反,我明确设置了 ID 以确保它是唯一的,并且不同于任何可以自动设置的东西。它有帮助。

于 2017-12-29T10:21:06.933 回答