2010-02-18 42 views
1

我有一個gridview控件中的兩個文本框和一個標籤,我將javascript函數添加到第二個文本框的onblur事件屬性並在標籤中顯示結果,函數工作正常,結果顯示在標籤中,但是當我將網格數據保存到數據庫中時,標籤返回0或爲空,但我能夠看到該值,以及如何解決此問題。由javascript設置的值不保存在asp.net

感謝和問候

回答

4

您的標籤是不是在ViewState堅持,因爲它不包括作爲一個「形式」的控制。你可以使用一個隱藏的文本框來實現這一點,可能有更好的方法。

+0

我嘗試過使用隱藏字段,它在某些系統上工作,而不是在某些系統上工作,是否有任何瀏覽器設置阻止了此操作。它不工作的瀏覽器是Firefox 3.5.5的任何輸入? – sansknwoledge 2010-02-19 01:26:26

2

這是一個鏈接,可以解答你的問題。

http://www.mikesdotnetting.com/Article/65/ViewState-form-fields-labels-and-Javascript

如果我理解正確的話,(請糾正我,如果我錯了) 它是IPostBackDataHandlermore info)表示,當它被客戶端改變了服務器的輸入現場控制處理數據(JavaScript)的。標籤控件不是輸入字段,因此客戶端中所做的更改不會被保存。

這裏是從上面的鏈接報價:

的ViewState的工作是管理任何 更改的服務器 控制的初始狀態,如果這些更改程序的服務器上進行 ,或者如果 用戶交互所做的更改是 傳遞給服務器。這不包括 包括恢復形式 輸入(如文本框或 選定的項目在CheckBox中的值。有 一個常見的誤解,表格 值由ViewState管理。他們 不是。從沒有過。這些值 純粹由 IPostBackDataHandler進行管理和恢復。

IPostBackDataHandler是一個巨大的福音 給誰長大 在其他的服務器端技術的Web開發人員, 如傳統的ASP,PHP等。在 「古代」的日子,我們曾經有 手動線向 顯示原始發佈的值 ,以便用戶的未被呈現爲 的空表格再次填充遍及 ,如果它已經在服務器端 驗證失敗。 IPostBackDataHandler表示 我們再也不需要這樣做。

正如在另一個使用隱藏值的應答中所提到的,以保持由Javascript所做的更改應該工作。