代码之家  ›  专栏  ›  技术社区  ›  MKF

基于用户角色的批量禁用复选框-MVC Razor

  •  1
  • MKF  · 技术社区  · 7 年前

    我在MVC应用程序中定义了用户角色。基本上,我想要的是:

    if (User.IsInRole = ("staff"))
       {
          // disable all checkboxes
       }
    

    我知道我可以这样做,但是页面上有大约100个复选框,重复添加了禁用属性的所有代码行似乎很讨厌。有更好的方法吗?我也不反对使用一些jquery来实现这一点:

    if (User.IsInRole = ("staff"))
    {
       <tr>
         <td>Centroid</td>
         <td><input type="checkbox" name="Staff" checked disabled /></td>
         <td>@Html.CheckBoxFor(m => m.NBTC_FA_Centroid, new {@disabled = "disabled")</td>
         <td>@Html.CheckBoxFor(m => m.Contract_FA_Centroid, new {@disabled = "disabled")</td>
         <td>@Html.CheckBoxFor(m => m.Coord_FA_Centroid, new {@disabled = "disabled")</td>
         <td>@Html.CheckBoxFor(m => m.NGO_FA_Centroid, new {@disabled = "disabled")</td>
         <td>@Html.CheckBoxFor(m => m.Public_FA_Centroid, new {@disabled = "disabled")</td>
       </tr>
    }
    else
    {
       <tr>
            <td>Centroid</td>
            <td><input type="checkbox" name="Staff" checked disabled /></td>
            <td>@Html.CheckBoxFor(m => m.NBTC_FA_Centroid)</td>
            <td>@Html.CheckBoxFor(m => m.Contract_FA_Centroid)</td>
            <td>@Html.CheckBoxFor(m => m.Coord_FA_Centroid)</td>
            <td>@Html.CheckBoxFor(m => m.NGO_FA_Centroid)</td>
            <td>@Html.CheckBoxFor(m => m.Public_FA_Centroid)</td>
       </tr>
    }
    
    2 回复  |  直到 7 年前
        1
  •  4
  •   Ziaul Kabir Fahad    7 年前

    您可以检查您的模型并设置 object 作为 残疾人 作为HTML助手的属性。

    object attributes = null;
    
    if (User.IsInRole = ("staff"))
    {
        attributes = new { disabled = "disabled" };
    }
    

    然后像这样对你的助手使用它

     @Html.CheckBoxFor(model => model.Status, attributes)
    

    当角色是内容时,它将禁用复选框,否则它将保持启用状态。

        2
  •  1
  •   China Syndrome    7 年前

    试试这个

    <script type="text/javascript">
        function Uncheckall() {
    
            $('table input[type=checkbox]').attr('disabled', 'true');
        }
    </script>