2008-10-15 58 views
2

我在ASP.net中有一個列表框。我正在動態地從頁面中的另一個列表框中填充列表框值。在回發期間,輸出列表框的值不會被保留。 (同時轉到另一頁並返回此頁面)。列表框值持續回發

請建議一些很好的答案。 EnableViewstate =「true」不起作用。

+0

在什麼階段你填充列表框?如果ViewState不是以某種方式被禁用的話,我擔心你已經做得太晚而無法被保存在頁面中。 – leppie 2008-10-15 12:51:53

回答

3

你在做在Page_Load中任何應在負載

if(!IsPostBack) {} 

初始化代碼需要在第一次加載頁面時只能叫,而不是回發。

如果您要轉到其他頁面然後回到此頁面,我認爲您需要自己將這些信息保留在會話中,然後在您回到頁面時將其恢復。

0

初始化頁面初始化事件(Page_Init)中控件的內容。這樣,用戶提供的任何值都不會被默認值覆蓋。

1

只有在同一頁面上執行回傳時,視圖狀態纔會被保留。 婁佛朗哥寫

if(!IsPostBack) {} 

您可以使用此初始pagerequest填寫數據。如果您希望使用會話保存頁面中的數據以存儲值,那麼這是最好的選擇。

最好你在PreInit的SaveViewState事件之前填入你列表框中的數據,據我所知。

0

EnableViewState只會使用頁面首次呈現時的值重新填充輸出列表框,因爲它們仍然是存儲在視圖狀態中的值。瀏覽器只發送回發中選定的值,因此服務器無法知道您在客戶端添加了哪些其他值。

您可以通過向頁面添加隱藏輸入並在更新列表框時使用動態值填充它來解決此問題。然後您的頁面可以在回發期間檢查該值並正確地重新填充列表。

0

在回發期間,對客戶端上的列表框所做的更改不會持久,您需要將該信息記錄在隱藏字段中,然後在page_load事件期間配置控件,以便在發佈的其餘部分進行更改。