首页 新闻 搜索 专区 学院

CheckedListBox中如何获取值进行对比后给有值的复选框打钩

0
悬赏园豆:10 [待解决问题]

我获取到值之后进行了对比,双击一个用户在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);

              }
          }

风吹鸡鸡凉的主页 风吹鸡鸡凉 | 初学一级 | 园豆:110
提问于:2010-09-17 11:48
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册