2013-01-14 55 views
0

好的,在這個版本上有相當長的一段時間,但需要來自具有卓越ASP技能的人員的幫助。我使用後面的代碼來填充一個ASP查詢的結果。只讀值存儲在某些表格單元格的.text中,而讀寫值存儲在文本框控件的.text(動態創建並添加到表格單元格中)。ASP .Net - 更改/更新動態創建的文本框

這適用於第一次加載。當頁面使用不同的查詢重新加載(例如:用戶選擇不同的列進行排序時),表格單元格值正確地重新填充,而文本框值保持不變。在查詢之前投入table.rows.clear()似乎無法解決此問題。

更多信息:

  • 我創建了一個方法來擦拭使用table.findcontrol()所有textbox.text值。當綁定到按鈕時,此方法可用於規範(表明findcontrol能夠查找/更新文本框),但如果重新加載頁面,則所有受影響的文本框將保持空白。如果放置在頁面加載中,則該方法不執行任何操作(文本框保留以前的值)。在調試模式下,findcontrol在按鈕上使用時會拉出一個值,但在添加到頁面加載時會出現空值。我已對table.rows.clear()進行了評論和取消註釋。
  • 我也試圖把所有的代碼丟進oninit。這似乎沒有任何明顯的差異。
+0

看看你的'Page_Load'事件是什麼樣子會很有幫助,但我的猜測是您在每次加載後都不重新創建文本框。 – CAbbott

回答

2

動態控制必須在每個頁面請求加入,最好是在Init事件。這聽起來像你沒有按時重新創建它們。

添加他們在每一個頁面的請求,並在頁面生命週期的一部分,他們會從viewstate

0

你需要得到他們的價值觀爲了動態控制,以保持它們的值:

a。)確保頁面已啓用Viewstate。 b)重新創建每個頁面加載的控件,確保您創建的控件具有與最初爲控件提供的相同ID。你也需要在視圖狀態加載之前這樣做(最好是在Onit或PreInit方法中。看到頁面生命週期在這裏:http://msdn.microsoft.com/en-us/library/ms178472%28v=vs.100%29.aspx