我想实现控件加载的时候  treeview 的所有 checkboxex为选中状态然后根据权限,判断某些子节点为false,球代码

解决方案 »

  1.   

    有该权限就checked=true,没就false
      

  2.   

    - -  这些我都知道啊,需要代码参考一下,关键那些node我弄不清。
      

  3.   

    triview是分父node和子node的,
    里面还有一个属性叫tag的,可以保存你要保存的ID,也可以是表示等等
    然后就好判断了
      

  4.   

    for (int i = 0; i < powerParent.Count; i++)//一级资源            {
                    PowerList.Nodes.Add(powerParent[i].PowerName);
                    PowerList.Nodes[i].Tag = powerParent[i].ID;
                    //如果角色拥有此权限,则选定该节点                if (RolePowerList.Find(p => p.PowerID == powerParent[i].ID) != null) PowerList.Nodes[i].Checked = true;                List<Power> powerChild = powerBll.GetChildNodeByParentID(powerParent[i].ID);
                    if (powerChild == null) continue;
                    for (int j = 0; j < powerChild.Count; j++)//二级资源
                    {
                        PowerList.Nodes[i].Nodes.Add(powerChild[j].PowerName);
                        PowerList.Nodes[i].Nodes[j].Tag = powerChild[j].ID;
                        //如果角色拥有此权限,则选定该节点                    if (RolePowerList.Find(p => p.PowerID == powerChild[j].ID) != null) PowerList.Nodes[i].Nodes[j].Checked = true;
                    }
    大概就是这个样子,自己根据需要去改
      

  5.   


    js:
    控件:<div  style="background: #FFFFFF;">
                        <asp:TreeView ID="tvLeft" runat="server" ShowExpandCollapse="true"  ExpandDepth="1" ShowLines="True">
                            
                        </asp:TreeView>
                    </div>code:
    TreeNode ParentNode;
    datatable dt = xxx;//绑定数据
    for()//父节点循环
    {
       node.Value = Value;
       node.Text = Text;
       node.ShowCheckBox = true;
       for()//子节点循环
        {
        TreeNode node = new TreeNode();
                
                node.Value = Value;
                node.Text = Text;
                node.ShowCheckBox = true;
                if(ischeck)//如果有权限
    {
                node.Checked = true;

        ParentNode.ChildNodes.Add(node );
        }
    tvLeft.Nodes.Add(ParentNode);//把节点绑定到树中

     //判断节点是否选中,遍历树时看node.Checked = true;还是false就可以了
    //点击使权限变成false可以添加个保存按钮,点击时改变数据库值
    //代码仅供参考,没有验证,希望对lz有用,呵呵
      

  6.   


      #region 读取权限数据,设置已选取节点的CheckBox为True
            public static void SelCheckNodes(TreeView tree, string[] jsqx)
            {
                //SetNodesChkFalse(tree);
                foreach (TreeNode tn in tree.Nodes)
                {
                    foreach (string nodevalue in jsqx)
                    {
                        if (nodevalue == tn.Value) { tn.Checked = true; }
                    }
                    SelCheckChildNodes(tn, jsqx);
                }
            }
            private static void SelCheckChildNodes(TreeNode node, string[] jsqx)
            {
                if (node.ChildNodes.Count > 0)
                {
                    foreach (TreeNode tn in node.ChildNodes)
                    {
                        foreach (string nodevalue in jsqx)
                        {
                            if (nodevalue == tn.Value) { tn.Checked = true; }
                        }
                        SelCheckChildNodes(tn, jsqx);
                    }
                }
            }
            #endregion