我正在写一份员工信息综合列表的视图。该视图将显示诸如名字,姓氏,工作代码等信息。我的一个问题是我希望布尔单元格为可单击按钮。
例如:HasHealthcare列将包含布尔值。
<thead>
<tr>
<th><label> FirstName</label></th>
<th><label> LastName</label></th>
<th><label> HasHealthcare</label></th>
</tr>
</thead>
<tbody>
@for (int i=0; i < Model.Employees.Count; i++)
{
<tr>
<td>@Model.Employees[i].FirstName</td>
<td>@Model.Employees[i].LastName</td>
<td>@Model.Employees[i].HasHealthcare</td>
</tr>
</tbody>
表格:
First Name | Last Name | Has Healthcare
Bob | Smith | True
我希望“ True”是一个可单击的按钮,以便如果单击它,则会显示相反的布尔值。
答案 0 :(得分:4)
如果您不介意使用复选框,则可以使用以下选项:
<table>
<thead>
<tr>
<th><label> FirstName</label></th>
<th><label> LastName</label></th>
<th><label> HasHealthcare</label></th>
</tr>
</thead>
<tbody>
@for (int i = 0; i < Model.Employees.Count; i++)
{
<tr>
<td>@Model.Employees[i].FirstName</td>
<td>@Model.Employees[i].LastName</td>
<td>@Html.CheckBoxFor(x => x.Employees[i].HasHealthCare, false)</td>
</tr>
}
</tbody>
</table>
答案 1 :(得分:0)
如果您需要在每次单击时自动保存,则可以使用Ajax和JQuery,如下所示。而且您还需要一个匹配的[HttPost]操作方法。
<thead>
<tr>
<th><label> FirstName</label></th>
<th><label> LastName</label></th>
<th><label> HasHealthcare</label></th>
</tr>
</thead>
<tbody>
@for (int i=0; i < Model.Employees.Count; i++)
{
<tr>
<td>@Model.Employees[i].FirstName</td>
<td>@Model.Employees[i].LastName</td>
<td><a class="healthcare" data-id="@Model.Employees[i].Id" href="#">@Model.Employees[i].HasHealthcare</a></td>
</tr>
}
</tbody>
<script>
$().ready(function(){
$(".healthcare").click(function(){
var element = this;
$.ajax({
type: "POST",
url: url,
data: {isHealthcare:$(element).text().toLowerCase()==='true', id:$(this).data("id") },
success: function(result){
$(element).text(result);
},
dataType: "json"
});
});
})
</script>