Массовое отключение флажков на основе роли пользователя - MVC Razor - PullRequest
0 голосов
/ 02 октября 2018

У меня есть роли пользователей, определенные в моем приложении MVC.По сути, я хочу вот что:

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

Я знаю, что мог бы сделать что-то подобное, но на странице около 100 флажков, и кажется неприятным повторять все строки кода с добавленным атрибутом disabled.,Есть ли способ лучше?Я не против использования некоторого 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 ]

0 голосов
/ 02 октября 2018

Вы можете проверить свою модель и установить object как отключено как атрибут html helper.

object attributes = null;

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

, а затем использовать его для своего помощника, как это

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

Он отключит флажки, когда роль заполнена, иначе он останется включенным.

0 голосов
/ 02 октября 2018

Попробуйте это

<script type="text/javascript">
    function Uncheckall() {

        $('table input[type=checkbox]').attr('disabled', 'true');
    }
</script>
...