【发布时间】:2015-05-07 07:01:40
【问题描述】:
我的视图中有一个如下 HTML 表格:
<table id="tblCurrentYear">
<tr>
<td>Leave Type</td>
<td>Leave Taken</td>
<td>Leave Balance</td>
<td>Leave Total</td>
</tr>
@foreach (var item in Model.LeaveDetailsList)
{
<tr>
<td>@Html.TextBoxFor(m => item.LeaveType, new { width = "100" })</td>
<td>@Html.TextBoxFor(m => item.LeaveTaken, new { width = "100" })</td>
<td>@Html.TextBoxFor(m => item.LeaveBalance, new { width = "100" })</td>
<td>@Html.TextBoxFor(m => item.LeaveTotal, new { width = "100" })</td>
</tr>
}
</table>
我想遍历所有 html 表行并将值插入 ADO.NET DataTable 中。
简单来说,将 HTML Table 转换为 ADO.NET DataTable。
如何从 HTML Table 中提取值并插入到 ADO.NET DataTable 中?
视图基于以下模型
public class LeaveBalanceViewModel
{
public LeaveBalanceViewModel()
{
this.EmployeeDetail = new EmployeeDetails();
this.LeaveBalanceDetail = new LeaveBalanceDetails();
this.LeaveDetailsList = new List<LeaveBalanceDetails>();
}
public EmployeeDetails EmployeeDetail { get; set; }
public LeaveBalanceDetails LeaveBalanceDetail { get; set; }
public List<LeaveBalanceDetails> LeaveDetailsList { get; set; }
}
【问题讨论】:
-
您是要获取表格的文本框值并插入数据库还是需要插入完整的html?
-
从我们的 cmets 到您的最后一个问题是否不清楚您不能使用
foreach循环在集合中生成控件。您需要一个for循环或模型的自定义EditorTemplate。你的foreach循环不会绑定到任何东西。 -
@StephenMuecke 但是 foreach 正在工作,我能够用它填充 HTML 表。生成此表后,用户可以更改任何文本框中的值并单击保存按钮。单击保存时,我想选择所有 TextBox 值(逐行)并插入 ADO.NET DataTable。
-
不,它不是——你在视图中看到了值,但是当你回发时你不能绑定到任何东西。检查您生成的 html - 您有多个带有
name="LeaveType"的文本框。为了在回发时绑定到您的收藏,控件需要为LeaveBalanceDetail[0].LeaveType、LeaveBalanceDetail[1].LeaveType等。 -
为什么需要将这些添加到 ADO.Net 表中?您是否要将这些保存到数据库中?
标签: c# asp.net-mvc razor asp.net-mvc-5