2012-05-25 58 views
0

ASP.Net形式,SQL,C#保存和調用asp.net表單字段值 - 有沒有更好的方法?

我有一個應用程序,需要保存文本框,複選框,單選按鈕等的狀態。然後它必須允許回憶該表單的狀態在某些未來的時間。

我目前的解決方案是遍歷所有的輸入字段,並將字段ID和字段值存儲在XML字符串中,然後將其推送到SQL表中的nvarchar或文本字段中。我這樣做的原因是,隨着時間的推移表單可能會有不同的字段,所以我不能直接轉儲到表中已知的一組字段中。

在未來的時間,用戶可以調用「狀態記錄」,並且所有仍然存在的字段被重新填充,並且任何新字段都留空。

這工作得很好,但我想知道是否有人以不同的方式或更好的方式完成了這個?

這個項目的想法是,我的用戶在頁面上做了一些選擇來創建一個「查詢」,我想有一個功能,他們可以調用以前保存的「查詢」。

回答

0

Asp.net保持viewState中的控件狀態。這viewState是所有你需要保持所有的數據。是的,它存儲的不僅僅是價值。

ViewState保存在asp.net的隱藏變量中。

如果您將此值寫入數據庫並在加載頁面時強制loadViewState,則將恢復所有值。

loadbackState函數在回發時由Asp.Net調用,所以在這種情況下,您必須自己調用它。

+0

但是,如果在視圖狀態重新加載之前窗體發生變化(小時,幾天,幾個月後),視圖狀態不會失效嗎?即添加新的複選框。 –

+0

是的,這將是無效的。但是如果你自己加載視圖狀態,這可以被處理。 ViewState是一個StateBag,具有名稱和值對。 – nunespascal

-2

在例如JQuery的客戶端,它更容易實現,您可以將初始值保存在控件的數據屬性中,然後重新填充所有控件。另一種方法是製作一個隱藏字段,並將初始值由特殊字符分隔,然後在每次回調(例如之前的值按鈕單擊事件)中從隱藏字段中讀取並拆分您的值並更新控件。

+1

該問題提到了一個用於調用先前保存的查詢的功能。如果應用程序不將數據存儲在某種持久性存儲中,那很難。 –

+0

而不是保存在XML中,我建議保存在隱藏字段,所以他甚至可以將他的xml值保存在隱藏字段中。 –

+0

是的持久性存儲是一項要求。 –

相關問題