2013-03-14 39 views
3

请帮我纠正这个错误。发生如何在asp.net中解决“id为id的控件无法找到或者不同的控件在回发后被分配到相同的ID”?

一个错误,因为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); 
+0

你在动态生成后如何选择它们?代码将有助于:) – tymeJV 2013-03-14 13:35:15

+1

告诉我们如何生成控件... – Blachshma 2013-03-14 13:35:26

+1

动态添加的控件需要在每次往返时添加(无论是否回发)和BEFORE事件处理,如果您希望它们处理事件(添加最佳时刻动态地在初始化) – jbl 2013-03-14 13:35:30

回答

3

由于按钮点击导致错误发生,因此按钮点击之前生成的控件可能已从相应的表单中清除。所以我建议你查看button_click()方法中的一个断点后单击按钮后编写的方法或代码。 试试这个,请留下回复。

+0

您有另一种使用调试后查看应用程序的浏览器的“Inspect Element”工具的选项。右键单击网页上的控件,找到所谓的'ctl81'。 – 2013-03-15 06:53:34

1

错误本身提到了解决方案。 首先检查发布后是否仍将ID分配给控件。如果不是,明确设置ID属性来避免这个错误

0

在我的情况类似的例外是由其中有id属性设置强行Render方法,而无需将其ID属性设置为相同值的控制造成的。

显然,自动识别模式具有在从代码ID后面不匹配渲染id属性的问题。

我宁愿不改变渲染阶段,因为控制被广泛应用于一个庞大的系统工程,很多功能依赖于它的工作,因为它是。 相反,我已经明确设置了ID,以确保它是唯一的,并且可以与任何可以自动设置的不同。它有帮助。

相关问题