Web App一次性保存整个表

时间:2009-11-03 18:16:22

标签: asp.net-mvc

设置场景:

.NET新手;从firehose喝酒

ASP.NET MVC app,SQL Server back

浏览器中带有单个SAVE按钮的可编辑表格。

用户可以右键单击添加或删除行。

表格不会超过约。 30行。

我的问题: 我在保存按钮单击时保存所有内容,但是当用户进行更新时,最好是逐行保存AJAX样式吗? 我不喜欢每一行的单独按钮的外观,这就是我用这种方式设计它的原因。 这主要是UI问题吗?我在这里遗漏了任何技术问题,例如在大量保存行期间后端失败了吗?

此外,假设我确实一次保存整个表,最好是创建一个ADO DataTable对象,或者只是通过调用存储过程来循环,插入/更新每一行。我想我可以将LINQ添加到firehose中,但这会使这个问题变得更加“负责”。

3 个答案:

答案 0 :(得分:1)

我之前使用这些大表视图时所做的是当有人点击他们想要编辑的单元格时,运行一些ajax来显示带有该文本的文本字段,他们可以编辑,然后收听onmouseout并输入按钮发送ajax请求以修改单行。

当ajax调用的响应返回时,您可以添加工具提示或保存的内容,然后将单元格更改为新的val。

答案 1 :(得分:1)

这里没有大量数据,因此在表格末尾保存所有30行是一种合理的方法。但是,您应该为失败做好准备,特别是如果您因为其他应用程序/用户更改相同数据而更频繁地失败时更改现有行。只需确保等待SQL服务器确认已提交更改。

答案 2 :(得分:-2)

假设您有SQL2005,您可以构建包含所有数据行的XML文档,然后调用单个存储过程并将其传递给您的XML。然后存储过程可以一次保存所有行。