2010-04-06 99 views
0

我有一個表和一個按鈕。表格的單元格有控制LiteralControl和CheckBox。我檢查一些領域,然後通過點擊按鈕我從數據庫中刪除這些領域。在事件Page_PreRender上,我清除Table,然後用更新的數據填充它。然後它顯示我更新的數據表。但是,如果我再次檢查表的字段,並點擊一個按鈕,它不會做我所期望的。在Page_Load事件中,我發現它不保存控件的屬性。選中的複選框控件顯示爲未選中。asp.net頁面生命週期問題

+0

您是否在'PreRender'中動態創建這些複選框控件?......或者更確切地說,它們是由您的還是在'PreRender'中添加的? – 2010-04-06 12:20:30

+0

好問題,這是一個痛苦的道路。 – 2010-04-06 12:24:25

+0

我在PreRender中動態創建它們。 – Varyanica 2010-04-06 12:33:22

回答

0

我假設按鈕回發,你正在做你的更新,然後你試圖確保新的數據重新加載。

您可能想要做的是在更新後重定向到您的頁面 - 搜索「GET AFTER POST」以獲取更多信息。

+0

但如果我在Load事件中填充表,它會保存控件的屬性。 – Varyanica 2010-04-06 12:36:18

+0

您可以設置enableviewstate屬性,以便它不保存狀態? – chris 2010-04-06 14:17:57

1

是狡猾。你真的希望在處理任何事件之前綁定所有數據。即綁定您的數據OnInit或OnLoad(如果您可以保存視圖狀態,OnInit會更好)。

然後處理事件,即刪除行或您正在做的任何事情,然後在事件處理程序本身(在刪除操作之後)獲取並重新綁定新數據。