如何根据特定值更改复选框状态,以及如何将复选框列表发布回服务器
本文关键字:复选框 列表 服务器 布回 状态 何根 | 更新日期: 2023-09-27 18:22:18
我正在处理一个组用户分配模块
为此,我有两种型号:
- CCD_ 1。存储组信息
- CCD_ 2。存储组和用户之间的关联信息(
UserID
、GroupID
) - 我没有用户表,因为他们是AD用户
首先,我写了以下Action Method
:
public ViewResult Details(int id) {
ViewBag.ADUsers = repository.GetADUsers();
return View(repository.FindAllGroup(id));
}
repository.GetADUsers
将在其中检索当前在Active Directory中的所有用户
视图如下:
@model TMS.Models.Group
<h2> Assign Users To the Group</h2>
@foreach (var ad in ViewBag.ADUsers) {
<tr>
<td>
<div >@ad.SamAccountName </div>
</td>
</tr>
}
但是我如何将其扩展到包括这些主要功能。
- 目前,我正在显示所有AD用户的列表。但我需要在
SamAccoutnName
旁边添加一个CheckBox
- 如果
SamAccountName
已经分配给Group
0,则CheckBox
应该是checked = true
,否则应该是checked = false
- 要添加AssignUsersGroup Post操作方法,该方法将接受
CheckBox
es的列表并相应地更新UserGroup
表
List<TypeOfListReturn> ADUsersList = ViewBag.ADUsers as List<TypeOfListReturn>;
foreach (var ad in ADUsersList )
{
<table>
<tr>
<td>
<div>
@ad.SamAccountName
@Html.CheckBox("chk_" + ad.SamAccountName, ad.isInGroup)
</div>
</td>
</tr>
</table>
}
这是你的1和2的答案。对于第三个,我更希望你使用模型。如果您使用model来绑定名称和复选框,那么在post-back中,将返回复选框的值。
我可以回答1和2,但不能回答3。
- 目前,我正在显示所有AD用户的列表。但我需要在SamAccutnName旁边添加一个复选框
- 如果SamAccountName已分配给组,则复选框应被选中=true,否则应被选中=false
您只需要将复选框的HTML添加到foreach中,然后使用if语句检查您的"已检查"条件:
@foreach (var ad in ViewBag.ADUsers) {
<tr>
<td>
@if (ad.isInGroup)
{
<input type="checkbox" name="@ad.SamAccountName" checked="checked">
}
else
{
<input type="checkbox" name="@ad.SamAccountName" checked="">
}
<div >@ad.SamAccountName </div>
</td>
</tr>
}
如果您希望这些项目并排,则可能需要将<div>
更改为跨度<span>
。
此外,我的示例假设您的"ad"对象具有一个属性,该属性指示该人是否在该组中。你需要使用你目前使用的任何方法来检查。