2009-02-03 74 views
3

好了,所以這是this question.MVC批量編輯 - 例如

我試圖使用產生的LinqToSql MVC應用程序,它允許在單頁上的數據的批量編輯的選擇。

想象一下,ItemId,ItemName,ItemPrice作爲字段的簡單表格Item。

很多例子都非常簡單的MVC應用程序,它們向您顯示這些項目的列表,每個項目旁邊都有一個編輯按鈕,底部有一個添加按鈕。

從用戶界面的角度來看,當大量數據需要輸入/更新時,我覺得這非常耗時。

我在包含文本框中的項目名稱和價格的單個頁面之後,可以一次編輯所有項目,然後單擊一個「保存」按鈕以更新數據。

我見過一些執行此過程的各個階段的例子,但尚未找到一個實現完整解決方案的例子。特別是與Linq的互動。

我有很多方法,我嘗試過所有的工作,但是,我的直覺告訴我我的方法「氣味」,因此我想看看其他人如何嘗試這樣做的一些例子。

所以,簡單地說,我的問題是任何人都可以提供一些鏈接到一些例子嗎?

回答

0

我想解決這個問題的方法是使用jQuery在切換行時調用jsonResult。這個jsonResult會調用模型中的代碼,只保存你關閉的行的ItemId,ItemName,ItemPrice。更多關於一般jsonResult w/jQuery的用法在這裏:http://www.dev102.com/2008/08/19/jquery-and-the-aspnet-mvc-framework/

你可以做的另一件事是做模型綁定到項目列表,迭代通過列表保存每個項目 - 菲爾哈克有一個列表綁定的例子在這裏: http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx無論使用哪種方法,您都希望做一些事情來表示行已更改,因此如果您只是更改一些行,則不會更新每個字段。

0

你的目標究竟是什麼?你是否試圖同時提交一系列信息?或者,您是否只是不希望每次更改內容時都要回傳頁面。無論哪種情況,jQuery都是您最好的選擇。如果你想一次完成所有的事情,它會變得複雜,除非你使用一個jQuery控件來爲你做這件事。有一些偉大的那裏,如Flexigrid

3

我有written about how to do thisMvcContrib的FluentHtml。史蒂夫桑德森有written about how to do it沒有FluentHtml。我們的兩篇文章都有一個示例解決方案,您可以下載並查看。

就LinqToSql而言,我認爲批量編輯機制(控制器和視圖)與LinqToSql之間的任何交互都是一種氣味。也就是說,儘可能的你的UI應該對你的持久性機制一無所知。