【发布时间】:2017-01-18 07:51:52
【问题描述】:
我有一个 MVC 网络应用程序,我在其中显示了一个表格。
我的一些行可以有一个相似的 id,我只需要为所有这些行显示一个 checkbox,而对于没有匹配 id 的行,我只需要显示一个 checkboxes。如下所示:
row1 和 row2 具有相同的 id,因此 checkbox 位于它们之间(由红色 checkbox 表示)。
row3、row4 有不同的 id,因此他们需要有自己的 checkboxes(用绿色表示)。
我知道我需要玩 rowspan 属性,但我无法想象如何使用它。
Below is the sample code:
[Route("Search")]
[HttpGet]
public async Task<IActionResult> Search()
{
//Some API call
return View("Search", model);
}
查看代码:
<table id="tblsearch">
@if (Model.HasRecords)
{
var counter = 0;
<tbody>
@foreach (var item in Model.SearchResults)
{
<tr>
<td>
<input type="checkbox" id="Dummy_@counter" name="chkSearch" data-id="@item.Id"/>
<label for="Dummy_@counter"></label>
</td>
<td>@item.FullAddress</td>
<td>@item.Price</td>
<td>@item.OfficeName</td>
}
else
{
<tr><td>Data Not Found</td></tr>
}
</table>
我试图首先隐藏所有checkboxes,然后尝试匹配每个row中的id,然后如果2行的id相同,我试图将rowspan增加2。
js code:
function pageLoad()
{
var rowCount = $('#tblSearch >tbody >tr').length;
for(var i=0;i<rowCount-1;i++)
{
$('#Dummy_' + i).hide();
}
var searchArray= [];
for (var i = 0; i < rowCount - 1; i++) {
searchArray[i]= $('#tblSearch >tbody >tr')[i].attr('data-id');
}
}
请指导如何进行。
【问题讨论】:
-
在我看来,您应该控制复选框单元格上的行跨度,以匹配结果中 ID 的出现次数。
-
@Steve:是的,你是对的......类似的东西......任何指针或一些示例代码?
-
在这种情况下,您需要在循环中构建表本身。在循环中,您需要检查有多少“相同的 id 连续跟随”,然后将 td.colspan 增加该数字。当然,在接下来的行中,您需要完全避免插入表格单元格。
-
使用不同的类属性设置它们,并通过使用 $('.checkboxedrow').html('checkboxed') 使用 jquery 来控制它们,反之亦然。
-
@sweaver2112:谢谢你的建议……让我试试吧。
标签: javascript jquery asp.net-mvc checkbox