2011-01-06 41 views
1

我寫的函數的代碼來創建動態表後面的控制上的SelectedIndexChanged複選框, 那就是當使用者將檢查2代checkboxex 2表將與文本框來產生,找到從動態創建的表

然後在按鈕點擊我想插入這些文本框數據庫, 的,我想使用的FindControl找到文本框的值,但我無法找到它,

因此,我呼籲在頁面加載, 創建表的相同的功能,但隨後顯示錯誤該文本框有重複的ID

Plz告訴我這個解決方案。

感謝

+0

你可以包含代碼片段嗎?這聽起來像是你創建表兩次,一次在Page_Load上,一次在SelectedIndexChanged上,導致重複的ID。在這種情況下,您根據用戶輸入創建控件,必須在Page_Load之前重新創建它們,以便捕獲回發數據,但在用戶啓動的事件可以重新創建它們之前銷燬它們。 – 2011-01-06 13:52:41

回答

1

當您創建動態控件,您需要重新創建他們在每次回發。

最好的地方是在OnInit事件處理程序中。在複選框的SelectedIndexChanged事件處理程序中執行此操作的問題是,在回發時它們不會被重新創建並且無法訪問。

查看this文章的詳細內容,也許還可以在asp.net page life cycle上閱讀。

+0

我試過這個,但它給錯誤重複的文本框ID不允許,PLZ給這個解決方案 – tina 2011-01-06 13:47:36

+0

@tina - 你應該給每個表和其他動態添加的控件一個_different_ ID。 – Oded 2011-01-06 13:49:54

1

使用runat =「Server」在頁面上添加一個div,併爲其指定一個ID,例如div1。 表添加到這個div但你應該總是寫

div1.Controls.Clear(); 

在第一然後再添加表到div。