2011-04-08 26 views
0

我已經使用asp:table/cell組合創建了一個動態矩陣顯示。並添加了在每個單元格中顯示值的文本框。在這一點上,我創建了一個視圖狀態,它完整的表格。asp.net如何通過回發來存儲文本框值(表格)

現在如果我更新文本框並單擊保存,我得到空表(由於回發),並且ViewState中的值也是陳舊的 - 它們不是更新後的用戶值。

所以有沒有辦法在每個文本框更改上創建視圖狀態。我如何存儲編輯的文本框值?

+0

你怎麼知道的ViewState是陳舊的?這種問題通常是在視圖狀態被連接之前不重新創建控件的結果。我認爲你需要發佈你的動態生成代碼來獲得任何有意義的答案。任何你不使用TemplateField的DataGridView的理由? – 2011-04-08 19:52:24

+0

爲什麼不使用asp.net的viewstate? – 2011-04-08 19:53:05

回答

0

您不需要存儲文本框的值,因爲它們都已準備好回傳。

你只需要從帖子後面讀取它們。

Request.Form[YourTextBox.UniqueID] 

現在,如果你想將它們保存在ViewState中,你可以使用如下代碼

string YouData 
{ 
    set 
    { 
     ViewState["cYouData"] = value; 
    } 
    get 
    { 
     if (ViewState["cYouData"] != null) 
      return ViewState["cYouData"].ToString(); 
     else 
      return string.Empty; 
    } 
} 

但唯一的理由這樣做,就是要了解,如果事情有變化,並發現某件事有改變一個簡單的散列可以完成這項工作。

0

檢測回傳,有重新加載值:

if (!Page.IsPostBack) 
{ 
    // initial load 
} 
else 
{ 
    // postback  
}