2012-04-11 81 views
0

在我的示例asp.net應用程序中,可以找到here,我在Page Init上創建動態控件。 然後,如果用戶在控件中輸入文本並單擊該按鈕,則應使用新值重新創建所有控件。asp.net動態控件奇怪值問題

該頁面將用用戶手動輸入的數據覆蓋第一行中的填充值。

有關如何防止這種情況而不改變爲html控件或MVC的任何想法?

回答

0

我最終做了一個解決方法,保持狀態我自己添加一個querystring變量告訴我的代碼,如果它的第一次加載或回發。我用新變量重定向到同一頁面,強制控件被清除。

另一種方法是在表單加載上檢查IsPostBack,並從存儲的對象值中再次替換ViewState指定的值。

仍然不明白爲什麼通過禁用頁面上的Viewstate並控制它仍然使用視圖狀態值填充我的動態控件。

0

視圖狀態在Page_Init事件中不可用。將創建移動到Page_Load事件。

+0

我不想使用viewstate(嘗試在任何地方禁用它),並且page_Load在Page生命週期中添加動態控件以便它們在回發後保留太晚。有時這些控件是按照原樣使用的,但有時它們會被刷新,所以這個問題是應該按照示例應用程序刷新控件的時候。 – DeWet 2012-04-12 00:19:21

+0

我明白你不想使用veiwstate的地方,但是如果你希望控件中的值持續存在,你將不得不使用viewstate,或者在回發控件時手動設置這些值。 – 2012-04-12 12:07:15

+0

我在後臺保持狀態,所以不需要viewstate。這裏的問題是我無法找到一種方法來讓頁面忽略viewstate/controlstate不覆蓋來自後端狀態系統的值。到目前爲止,我只設法讓它與Response.Redirect一起工作,在同一頁面上我必須添加一個querystring var來告訴我的代碼我做了一個回傳......大破解。 – DeWet 2012-04-14 01:47:04