问题描述:
1、我是用的IE Web Control中的Treeview来实现权限数(如果能用asp.net2.0中的TreeView实现最好),
2、权限树的规则:能访问子节点,则必能访问他的父节点;某节点不能访问,则就不能访问它的子节点。
3、实现就是:某一节点从unchecked-checked了,那么它的父节点就改成Checked了,当然要递归了。同样:如果该节点从unchecked->checked,他的子节点中如果有被checked的要改成unChecked,同样递归。注意:要求是客户端(Javascript)实现,
本来我是实现了IE Web Control中的Treeview的,可是当返回到服务器端时居然没有保存状态,郁闷。我是用的TreeNode.setAttribute("checked",true,0);最好用ASP.NET2.0中的TreeView实现。先谢谢了,高手们!

解决方案 »

  1.   

    最好用ASP.NET2.0,自己先顶一下。
      

  2.   

    问题中有个错误,
    原来的
    3、实现就是:某一节点从unchecked-checked了,那么它的父节点就改成Checked了,当然要递归了。同样:如果该节点从unchecked->checked,他的子节点中如果有被checked的要改成unChecked,同样递归。
    修改后:
    3、实现就是:某一节点从unchecked-checked了,那么它的父节点就改成Checked了,当然要递归了。同样:如果该节点从checked->unchecked,他的子节点中如果有被checked的要改成unChecked,同样递归。我同时还发了一个问题:专门讨论用asp.net2.0的Treeview实现权限树的功能,
    大家可以看看:
    http://community.csdn.net/Expert/topic/4616/4616186.xml?temp=.3292353
      

  3.   

    选中某节点时,选中所有的孩子节点,选中孩子的直系父节点。清除某节点时,清除所有的孩子节点,
    如果此层的所有的兄弟节点有选中的,则退出。
    如果都没有选中,则清除此父节点,并再以父节点 当此节点递归(只向上递归)。
    //伪码
    //选中或清除选中所有子节点
    function setAllChildrenState(rootNode,check)
    {
    if (rootNode == null || rootNode.chilerenNode.count == 0)
    return;
    foreach(node n in rootNode)
    {
    node.checked = check;
    SelectAllChildren(node);
    }
    }
    //选中所有父节点
    function selectAllParent(node)
    {
    if (node == null )
    return; while(node.parent != null)
    {
    node.checked=true;
    node = node.parent;
    }
    }
    //清除父节点,然后同一层的兄弟都没有选中的话
    function clearParent(node)
    {
    if (node == null || node.Parent == null)
    return; foreach(Node ch in node.Parent.ChileredNode)
    {
    if(ch.checked)//如果有兄弟节点选中
    return;//到此结束
    }
    //所有的兄弟都没有选中
    n.checked = false; //清除此父节点
    clearParent(n);
    }function onchecked ()
    {
    node = e.source;
    if (node.checked)//某节点选中时
    {
    setAllChildrenState(node,true);
    selectAllParent(node);

    }
    else//某节点清除时
    {
    setAllChildrenState(node,false);
    clearParent(node);
    }
    }
      

  4.   

    答案http://community.csdn.net/Expert/topic/4616/4616186.xml?temp=.3985254