2012-03-15 68 views
3

我讀過,asp.net中的視圖狀態存儲控件屬性跨回發的值。 可以說我有,有一個文本框Asp.net Viewstate不保存控件的樣式

<asp:TextBox ID="fldFileId" runat="server"></asp:TextBox> 

,然後通過JavaScript客戶端,我得到的元素的引用的頁面,然後設置邊框風格正是如此

refToTextBox.style["border-style"] = "dashed"; 

在回發,邊框樣式消失,文本框恢復到原來的樣子。但是在VS2010中看到一個asp:TextBox的屬性它的一個'BorderStyle'屬性。 爲什麼這個屬性沒有保存在視圖狀態中是否有原因?

回答

2

設置值客戶端不會更新ViewState。你必須爲ViewState設置樣式服務器端來存儲它。或者,您可以:

  1. 回發後重新運行JavaScript。
  2. 將樣式存儲在Cookie中並使用JavaScript恢復樣式。
  3. 找到一個JavaScript庫,在客戶端 (不推薦)修改ViewState。
+1

因爲該值被髮布到服務器端。檢查代碼隱藏中的Request.Form對象('Request.Form(MyTextBox.UniqueID)')以查看值。 – pete 2012-03-15 01:39:30

+0

謝謝,我在發表該評論幾分鐘後意識到這一點,並決定刪除它。記錄的評論是:「那麼爲什麼我在文本框中輸入的值在回發之後仍然存在」。 – x1886x 2012-03-15 01:42:55