我获取到值之后进行了对比,双击一个用户在CheckedListBox中的复选框显示出该用户下的权限,但是对比 后第一个用户下的权限所有的值对比后复选框全部选中了,但是后面的用户双击之后他的权限出来了但是没有选中为何?
以下是我的代码
//将树中当前选中项文本保存到name中
string name = trv.SelectedNode.Text;
List<Function> listfun = new List<Function>();
//利用选中项权限名称查询出该权限下的功能保存到list 集合中
listfun = RoleManager.GetFunctionName(name);
//如果复选框列表项中的值为0则循环list中的值添加到function实体中
if (clbSelFun.Items.Count ==0)
{
foreach (Function fct in listfun)
{
//将function实体中的值保存到复选框列表中
clbSelFun.Items.Add(fct.Fname,true);
List<RoleorFunction> lrf = RoleorFunctionManager.GetFunctionState(name);
foreach (RoleorFunction rft in lrf)
{
checkBox1.Text = fct.Fname;
if (rft.Rfstate == 1)
{
//if (checkBox1.Text == fct.Fname)
//{
// checkBox1.Checked = true;
//}
//未知,缺少如果当前复选项的值为1,则选中该项,如果为0则不选中该项。
for (int i = 0; i < clbSelFun.Items.Count; i++)
{
clbSelFun.SetItemCheckState(i, CheckState.Checked);
}
}
else
{
for (int i = 0; i < clbSelFun.Items.Count; i++)
{
clbSelFun.SetItemCheckState(i, CheckState.Unchecked);
}
}
}
}
}
else
{
//如果复选框中的值不为0,则清空复选框中的值 再进行添加
clbSelFun.Items.Clear();
foreach (Function fct in listfun)
{
clbSelFun.Items.Add(fct.Fname);
}
}