2016-11-30 120 views
1

後,我有下面的代碼aspx頁:在Page_Load我將項目添加到表動態添加控件消失回傳

<asp:Table ID="JsonContent" runat="server"> 
    </asp:Table> 

在我後面的代碼。

表包括兩行:

行NUM 0是含有細胞TextBox

行號碼1是細胞包含TextBox

另外我有一個按鈕save,當用戶點擊按鈕我需要遍歷所有表格行,並將Text Prop上的數據寫入文件。

問題是,當我點擊Button Save事件page_load提高和所有text box控制不存在,所以我不能將編輯的數據寫入文件。

我讀過關於此問題的類似帖子,但無法獲得解決方案。

謝謝!

+1

您應該在每次回發中(重新)在'Page_Init'中創建所有動態添加的控件,因爲所有對象都在HTML發送到客戶端時處理。但是,即使您在那裏重新創建它們,如果您指定了與以前相同的ID,它們仍會保留用戶輸入。 –

+0

你能用你的頁面加載代碼更新這個問題嗎? – Damith

+0

@TimSchmelter我嘗試你的解決方案,在創建具有相同ID的文本框後,我如何再次將它添加到asp.net頁面? 問題是所有控件都是null,即我的面板包含動態文本框 – maz

回答

0

首先,你應該瞭解asp.net頁面網頁週期:https://msdn.microsoft.com/en-us/library/ms178472.aspx

,我會說,@TimSchmelter對你的意見的完美解決方案:

「你應該(重 - )在每次回發時都會在Page_Init中創建所有動態添加的控件,因爲所有對象都會在將html發送到客戶端時丟棄,但即使您在其中重新創建它們,如果您指定的ID與以前相同,它們仍會保留用戶輸入「

這意味着你必須使用函數page_init(這與page_load b類似ut不是自動生成的,你必須把它寫成manualy)

我也這樣做了一次,我知道Tim的解決方案將工作。

只要確保已達到您的page_init()函數。