2010-02-09 41 views
3

我使用嵌套列表視圖動態綁定表和子表。在客戶端,我有一塊jQuery,它在表格中切換TR的可見性,以提供組展開/合同視圖選項。保持ASP.Net回發之間的客戶端類更改?

在回發上,我顯然失去了我通過jQuery應用的類更改。我想知道維護這些客戶端類更改的最佳方法是什麼?我曾考慮過爲每個表創建一個隱藏的輸入控件,以便在擴展它們時存儲可見TR的索引。目的是在回發/重新綁定期間查找索引,並將可見類添加到每個對應的元素。

有沒有更好的方法或在回發期間將客戶端樣式/類更改傳遞迴服務器的一些本地方法?

+0

如果您每次隱藏/顯示某個部分並維護顯示內容和不存在內容的列表時,都會將AJAX回撥到您的服務器,那麼您只需將該數據提供給您的刷新和觀看視圖不需要維護它或將其發回。 – Lazarus 2010-02-09 12:33:51

+0

@Lazarus。這是個不錯的主意,但似乎與在隱藏的輸入字段中存儲客戶端狀態一樣多。我希望爲此提供更優雅/強大的解決方案,這意味着我無需將更改映射回下一頁。不過謝謝。 – 2011-05-12 15:54:26

+0

我想你會發現幾乎每個基於門戶的網絡應用程序都會使用AJAX調用這種事情,我當然很驚訝地聽到這種解決方案被認爲不夠優雅而且不健壯。它最終只是HTTP,jQuery使它變得如此簡單。 – Lazarus 2011-05-13 10:12:53

回答

5

有許多方法可以做到這一點:

  • 正如你提到的,它包含有關修改視圖狀態信息創建一個隱藏的控制,在服務器端,然後使用該信息正確,下一次來呈現,或者javascript在頁面加載時查看此信息並調整頁面。如果您希望數據在會話中持續存在(登錄),則需要讓服務器端將信息存儲在數據庫中,並在每次訪問頁面時對其進行呈現。
  • 如果您希望數據持久存在,那麼在進行更改時,有時使用ajax調用來將信息存儲在服務器上會更好。這具有不強制用戶提交表單以便保持更改的優點。如果你正在處理的頁面經常被提交(或者甚至沒有其他表單元素),這可能是更好的選擇。
  • 舊學校:將信息存儲在cookie中。 Blah,沒有人再做這件事。