我正在尝试使用视图中的以下代码构建一个类似于控件的可编辑GridView(Order列):
<table>
<tr>
<th>
Name
</th>
<th>
Order
</th>
<th>
<img alt="Save order" src="<%= Url.Content("~/Content/minisave.png") %>" />
</th>
<th></th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td>
<%= Html.Encode(item.Name) %>
</td>
<td colspan="2">
<%= Html.TextBox("Order", item.Order, new { size = "3" }) %>
</td>
<td>
<%= Html.ActionLink("Edit", "Edit", new { id=item.id }) %> |
<%= Html.ActionLink("Details", "Details", new { id=item.id })%>
</td>
</tr>
<% } %>
</table>
结果表如下:
问题:我如何在控制器中收到此数据?我需要桌子周围的表格标签吗?我怎么知道哪个Order值属于哪个记录?
一些额外的问题:如果您看到代码我将size属性添加到输入标签但是当浏览器呈现它时,输入更大,我该如何解决?
感谢您的帮助!
答案 0 :(得分:2)
我以前做过这个。我通过将ID作为名称的一部分以及整个表格周围的表格来实现。这样,控制器就可以从所有行中提取所有数据,并像电子表格一样立即更新所有数据。
这适用于编辑页面并保存的工作单元,当然,您需要考虑如何应对锁定策略,无论是乐观还是悲观。
但是,现在更好的选择可能是使用ajax提交特定值,有点像Google Spreadsheet,可能吗?