MVC批量编辑 - 示例

3

好的,这是一个与此问题有所不同的解决方案。

我正在尝试使用LinqToSql制作一个MVC应用程序,允许在单个页面上批量编辑数据。

想象一下一个简单的表格项目,其中包含ItemId,ItemName和ItemPrice字段。

有很多示例展示了一个非常简单的MVC应用程序,它会向您显示这些项目的列表,每个项目旁边都有一个编辑按钮,底部还有一个添加按钮。

从用户界面的角度来看,当需要输入/更新大量数据时,我觉得这非常耗时。

我希望有一个包含所有项目名称和价格文本框的单个页面,可以一次性编辑所有内容,然后按下一个“保存”按钮来更新数据。

我看到了许多执行此操作的示例,但还没有找到实现完整解决方案的示例。特别是与Linq的交互。

我尝试过几种方法,它们都起作用,但我的直觉告诉我我的方法“有点问题”,因此我想看看其他人如何尝试解决此问题的例子。

简而言之,我的问题是,有人能提供一些示例链接吗?

3个回答

3

我曾经写过一篇文章介绍如何使用MvcContrib的FluentHtml实现此功能。Steve Sanderson也写过一篇文章介绍如何在没有FluentHtml的情况下实现此功能。我们两篇文章都提供了可以下载并查看的示例解决方案。

至于LinqToSql,我认为任何批量编辑机制(控制器和视图)与LinqToSql之间的交互都是不好的。也就是说,尽可能让你的UI不知道你的持久性机制。


0
我可能会使用jQuery在切换行时调用jsonResult来解决这个问题。此jsonResult将调用模型中的代码,仅保存您要切换的行的ItemId、ItemName和ItemPrice。有关使用jQuery的常规jsonResult更多信息,请参见此处:http://www.dev102.com/2008/08/19/jquery-and-the-aspnet-mvc-framework/ 另一件事是对Items列表进行模型绑定,迭代列表以保存每个项--Phil Haack在此处提供了列表绑定示例:http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx 无论使用哪种方法,您都需要做一些事情来表示行已更改,以便如果只更改了少量行,则不更新每个字段。

0

你的目标究竟是什么?是一次提交一系列信息吗?还是您不希望每次更改内容时都要进行页面回发?无论哪种情况,jQuery都是您最好的选择。如果您想一次性完成所有操作,除非使用一个能够为您执行此操作的jQuery控件,否则它将变得复杂。有一些很好的控件可以使用,比如Flexigrid


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接