我有一个主视图,其中包含以下示例表定义。
我随后拥有一个部分视图,格式如下:
我将使用这个局部视图来动态地向我的主视图中的表格添加行,这一部分已经很好地工作了。
我遇到的问题是在表格的第一列中添加行号,即(数字列)。
下面是我在jQuery中添加行到表格的方式:
<table id="myDynamicTable" cellpadding="0" cellspacing="0" width="964px">
<thead>
<tr id="uploadrow_0">
<th" >
Number
</th>
<th">
Remarks
</th>
</tr>
</thead>
<tbody>
@if (Model.myModel.Count > 0)
{
int i = 1;
foreach (var item in Model.myModel)
{
@Html.Partial("myModelPartial", item);
i += 1;
}
}
else
{
@Html.Partial("myModelPartial", viewModel);
}
</tbody>
</table>
我随后拥有一个部分视图,格式如下:
@model myProject.ViewModel.mySampleViewModel
<tr>
@using (Html.BeginCollectionItem("NewRow"))
{
<td class="tdBorder">
@if (Model.Number != 0)
{
@Html.LabelFor(x => Model.Number)
}
else
{
@Html.Label("Number", "0")
}
</td>
<td>
@Html.TextBoxFor(x => Model.Remark, new { id = "Remark"})
</td>
}
</tr>
我将使用这个局部视图来动态地向我的主视图中的表格添加行,这一部分已经很好地工作了。
我遇到的问题是在表格的第一列中添加行号,即(数字列)。
下面是我在jQuery中添加行到表格的方式:
$(document).ready(function() {
var tableBody = $('#myDynamicTable tbody');
var url = '@Url.Action("Add", "Report")';
$('#btnAddRow').click(function () {
$.get(url, function (response) {
tableBody.append(response);
//auto number added rows
$('#myDynamicTable tbody tr').each(function (idx) {
$(this).children(":eq(0)").html(idx + 1); //i'm trying to add the row number from here but this isn't working
});
});
});
})`
int i = 1;
和i += 1;
(你从未使用过i
的值),为什么在部分视图中有一个if
块,为什么它会创建一个<label>
元素(因为不正确的for
属性,单击它不会将焦点设置到相关的文本框)- 它可以简单地是<td class="tdBorder">@Model.Number)</td>
。 - user3559349new { id = "Remark"}
这样的代码呢?这会生成重复的id
属性,而这是无效的 HTML。 - user3559349