基于用户角色批量禁用复选框 - MVC Razor
Bulk disable checkboxes based on User Role - MVC Razor
我在我的 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>
}
试试这个
<script type="text/javascript">
function Uncheckall() {
$('table input[type=checkbox]').attr('disabled', 'true');
}
</script>
您可以检查您的模型并将 object
设置为 禁用 作为 html 助手的属性。
object attributes = null;
if (User.IsInRole = ("staff"))
{
attributes = new { disabled = "disabled" };
}
然后像这样将它用于你的助手
@Html.CheckBoxFor(model => model.Status, attributes)
当角色为 stuff 时它将禁用复选框,否则它将保持启用状态。
我在我的 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>
}
试试这个
<script type="text/javascript">
function Uncheckall() {
$('table input[type=checkbox]').attr('disabled', 'true');
}
</script>
您可以检查您的模型并将 object
设置为 禁用 作为 html 助手的属性。
object attributes = null;
if (User.IsInRole = ("staff"))
{
attributes = new { disabled = "disabled" };
}
然后像这样将它用于你的助手
@Html.CheckBoxFor(model => model.Status, attributes)
当角色为 stuff 时它将禁用复选框,否则它将保持启用状态。