2011-11-17 60 views
0

我有一點獨特的問題。我正在使用GridView來顯示來自數據庫的信息。這個GridView的要求是它總是可編輯的,所以我在ItemTemplates中有文本框,並且想要在單擊按鈕時保存這些值。GridView排序而不會丟失用戶修改

這一切都很好。

問題是我想要排序(並最終分頁)工作和打擊問題。如果我從一個ObjectDataSource綁定GridView,這顯然不起作用,因爲它在重新排序之前重新綁定了數據源,並且我失去了任何修改後的值。如果我綁定來自DataTable的GridView並嘗試將其存儲在Session變量中,它仍然不起作用,因爲任何修改的值都不在會話變量中。

我真的只是尋找建議,我可以做什麼來排序(和頁面後),而不會丟失用戶修改的值。我意識到大多數人不會一次修改Gridview,所以它是一個奇怪的問題。

回答

1

您可以實現GridView的客戶端排序,這會讓您的UI更快感受到額外的好處。有a blog post on sorting with jQuery你可以嘗試,但我沒有親自使用建議的方法。

或者,您可以在編輯時通過AJAX將值發送回服務器,並將它們(暫時)保存在會話,數據庫中或它們在您的場景中使其發揮作用的位置。排序時顯然需要檢索它們。

最後一個選擇是將您的值保存在由sort命令引起的回發中。大多數情況下,您會按照處理TextBoxes的OnTextChanged事件和(如上)將這些值保存到臨時存儲的方式進行操作。你不希望這些文本框自動回覆 - 它們只是等待回發,比如由排序事件引起的回發。在這種情況下,您也可以使用您在保存事件期間填充的臨時存儲,以避免重複工作。

+0

感謝您的回覆。我曾考慮過對Sort進行保存,這會讓事情變得更簡單,但在邏輯上看起來非常不正確。用戶不會期望一種排序來保存數據。我會研究客戶端使用jQuery進行排序,並標記答案,如果它最終爲我工作。感謝您的建議! – novacara

+0

@novacara我認爲排序保存是否符合邏輯意義很大程度上取決於您的用戶界面反饋和整體交互模型 - 請考慮熟悉的系統(如Gmail),並且您可以認識到存在需要不斷保存的情況。但是,您也可以考慮暫時保存數據而不提交數據:使用備用商店,標記數據等,以便差異對用戶透明。 –

+0

我想我會去用jQuery解決方案。我需要一些額外的幫助來定製我的具體gridview,因爲它有實際的控件(文本框,複選框),而不僅僅是文本,但我會問一個後續問題。謝謝您的幫助! – novacara

相關問題