Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表内的可单击按钮_Javascript_C#_Jquery_Asp.net Mvc_Razor - Fatal编程技术网

Javascript 表内的可单击按钮

Javascript 表内的可单击按钮,javascript,c#,jquery,asp.net-mvc,razor,Javascript,C#,Jquery,Asp.net Mvc,Razor,我正在写一个员工信息的复合列表视图。该视图将显示诸如名字、姓氏、职务代码等信息。。。我的一个问题是,我希望布尔单元格是可单击的按钮 例如:HashHealthCare列将包含布尔值 <thead> <tr> <th><label> FirstName</label></th> <th><label> LastName</label></th> <th><lab

我正在写一个员工信息的复合列表视图。该视图将显示诸如名字、姓氏、职务代码等信息。。。我的一个问题是,我希望布尔单元格是可单击的按钮

例如:HashHealthCare列将包含布尔值

<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>

我希望True是一个可单击的按钮,这样,如果我单击它,就会出现相反的布尔值。

如果每次单击都需要自动保存,可以使用Ajax和JQuery,如下所示。您还需要一个匹配的[HttPost]actionmethod

<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>

如果需要在每次单击时自动保存,可以使用Ajax和JQuery,如下所示。您还需要一个匹配的[HttPost]actionmethod

<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>

如果您不介意使用复选框,以下选项可能适用于您:

<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>

如果您不介意使用复选框,以下选项可能适用于您:

<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>

我同意在这种可用性的东西上建议使用复选框而不是按钮。是的,我同意,我认为复选框会更好,如果他愿意,他可以使用CSS使它看起来像按钮。我同意在这种可用性的东西上建议使用复选框而不是按钮。是的,我同意,我认为复选框会更好,如果他愿意的话,他可以使用CSS使其看起来像一个按钮。具有相同ID的多个元素在不同的浏览器中会不一致,并且在任何浏览器上都无法正常工作。您应该使用类名。是的,谢谢,它现在当然应该是类了。这就像一个符咒,但显示的值不是真就是假。你知道我怎样才能把真的变成真的吗?这很奇怪,我认为默认情况下C表示应该是真/假的。这就是我首先使用text.toLowerCase的原因。否则类似于:char。ToUpper@...HasHealthcare.ToString[0]+@…HasHealthcare.ToString.Substring1;如果它重新加载页面,它将正确显示。不过,上面的JQuery不需要重新加载整个页面。My posts向JQuery返回一个布尔值。不幸的是,以上两种方法都不起作用。具有相同ID的多个元素在不同的浏览器中会不一致,并且在其中任何一个浏览器上都不能正常工作。您应该使用类名。是的,谢谢,它现在当然应该是类了。这就像一个符咒,但显示的值不是真就是假。你知道我怎样才能把真的变成真的吗?这很奇怪,我认为默认情况下C表示应该是真/假的。这就是我首先使用text.toLowerCase的原因。否则类似于:char。ToUpper@...HasHealthcare.ToString[0]+@…HasHealthcare.ToString.Substring1;如果它重新加载页面,它将正确显示。不过,上面的JQuery不需要重新加载整个页面。My posts向JQuery返回一个布尔值。不幸的是,上述两项都不起作用。