2013-03-14 26 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,以確保它是唯一的,並且可以與任何可以自動設置的不同。它有幫助。

相關問題