表 roleright
id rileid nodeid
1  1      101
2  1      101001
3  1      102
4  2      103
5  1      104前台显示权限:
<input id="Checkbox1" value="101" name="cbl" type="checkbox" />
<input id="Checkbox2" value="101001" name="cbl" type="checkbox" />
<input id="Checkbox3" value="102" name="cbl" type="checkbox" />
<input id="Checkbox4" value="103" name="cbl" type="checkbox" /> 这个不会选中其他都是选中状态
<input id="Checkbox5" value="104" name="cbl" type="checkbox" />
再选中权限中我用string[] cball = Request.Params["cbl"].ToString().Split(',');
选中的value 就会被获取到cball 和 表roleright 如何做比较 ,选中的权限增加到表roleright ,取消选中的权限 那就删除表roleright 中的一行数据请大侠帮助啊

解决方案 »

  1.   

    第一个是 循环 页面中所有的 checkbox 
    第二个是 循环 数据库中checkbox的 id.
      

  2.   


                    foreach (ListItem li in all.Items)//循环当前所有权限
                    {
                        if (li.Selected)//此权限选中
                        {
                            if (!haveAll.Contains(li.Value.Trim()))//已有权限中不包含此权限
                            {
                                role.InsertRoleRight(roleId, Convert.ToInt32(li.Value.Trim()));//添加权限
                            }
                        }
                        else//此权限未选中
                        {
                            if (haveAll.Contains(li.Value.Trim()))//已有权限中包含此权限
                            {
                                role.DeleteRoleRight(roleId, Convert.ToInt32(li.Value.Trim()));//删除权限
                            }
                        }
                    }
    这样行不?
      

  3.   


    foreach (ListItem li in chklst.Items)//循环当前所有权限
    {
        if (li.Selected)//此权限选中
        {
            if (!arrRoleNodes.Contains(li.Value.Trim()))//已有权限中不包含此权限
            {
                role.InsertRoleRight(roleId, Convert.ToInt32(li.Value.Trim()));//添加权限
            }
        }
        else//此权限未选中
        {
            if (arrRoleNodes.Contains(li.Value.Trim()))//已有权限中包含此权限
            {
                role.DeleteRoleRight(roleId, Convert.ToInt32(li.Value.Trim()));//删除权限
            }
        }
    }