实现展开和折叠自如,节点全部选中的实现

继续上次的吧,本来还有点瞌睡:) (昨晚的德国VS哥队够精彩),还是坚持写完吧.今天说哈怎么实现Select All  TreeView全部节点的功能?怎么实现展开和折叠自如?
请看:
节点全部选中的实现:
function SelectAllFunctions()
        {         
            var tree= document.getElementById('<%=tvRoleFunctions.ClientID%>');
            var chckAll=document.getElementById('<%=chSelectAll.ClientID%>');
            var NodeArray=tree.getChildren();       
            for(var i=0;i<NodeArray.length;i++)
            {
                    cNode=NodeArray[i];
                    if(chckAll.checked )
                    {
                         cNode.setAttribute('checked',true);
                         GetSelectedFunctionID(cNode);
                         Checked(cNode);                            
                    }
                    else
                    {
                     cNode.setAttribute('checked',false);
                     UnChecked(cNode);
                     }
            }
                   
        }    function Checked(node)
        {
                var NodeArray=node.getChildren();
                for(var i=0;i<NodeArray.length;i++)
                {
                     childNode=NodeArray[i];
                     childNode.setAttribute('checked',true);
                }
        }function UnChecked(node)
        {
                var NodeArray=node.getChildren();
                for(var i=0;i<NodeArray.length;i++)
                {
                     cNode=NodeArray[i];
                     cNode.setAttribute('checked',false);
                }
           
        }节点的展开和折叠实现:
//TreeView的节点展开收回
function ExpandAllNodes()
{
   var tree=document.getElementById('<%=tvRoleFunctions.ClientID%>');
   Expandedall(tree);
}

function CollospaeAllNodes()
{
 var tree=document.getElementById('<%=tvRoleFunctions.ClientID%>');
 Unexpandedall(tree);
}function Expandedall(node)
{
        var i = 0;
        var nodes = new Array();
        nodes = node.getChildren();
        //alert(nodes.length);
        for(i = 0; i < nodes.length; i++)
        {
            var cNode;
            cNode=nodes[i];
            cNode.setAttribute("expanded", "true");
            if(parseInt(cNode.getChildren().length) != 0 )
            {
                Expandedall(cNode);
            }
        }
}function Unexpandedall(node)
{
        var i = 0;
        var nodes = new Array();
        nodes = node.getChildren();
        for(i = 0; i < nodes.length; i++)
        {
            var cNode;
            cNode=nodes[i];
            if(parseInt(cNode.getChildren().length) != 0 )
            {
                Unexpandedall(cNode);
            }
            cNode.setAttribute("expanded", "false");
        }
}这个怎么调用就不用说了吧!呵呵........
下次写作预告:
在Firefox下TreeView的父子节点联动实现、节点的全部选择和节点的展开和折叠实现.....
posted on 2006-06-10 08:55 kim 阅读(1782) 评论(7)  编辑 收藏 引用 网摘 所属分类: Asp.net开发
 


评论
# re: asp.net1.1下权限配置系统从设计到实现(四) 2006-06-10 10:18 打击者
可是asp.net 1.1下的TreeView只能从父节点得到子节点 反之不行呀  回复  更多评论
  


# re: asp.net1.1下权限配置系统从设计到实现(四) 2006-06-10 10:27 kim
@打击者
可以实现的呀
TreeNode newNode = new TreeNode();
if(newNode.Parent !=null)
{
TreeNode Pnode;
if(newNode.Parent is TreeNode)
{
Pnode=(TreeNode)newNode.Parent;
if(newNode.Checked )
{
//do somthing
}
}
}
后面的文章我会写到哈
  回复  更多评论
  


# re: asp.net1.1下权限配置系统从设计到实现(四) 2006-06-10 11:18 打击者
忘记说明了

是在js里面操作

  回复  更多评论
  


# re: asp.net1.1下权限配置系统从设计到实现(四) 2006-06-10 11:26 kim
@打击者
见 asp.net1.1下权限配置系统从设计到实现(三)   回复  更多评论
  


# re: asp.net1.1下权限配置系统从设计到实现(四) 2006-06-10 12:28 打击者
var ParentNode=node.getParent();

这句很纳闷 1.1版本里的treeview.htc里并没有treenode的getParent()方法

<!----------------------------------------------------------------------
// Copyright (c) 2000-2003 Microsoft Corporation. All Rights Reserved.
//---------------------------------------------------------------------->

<public:component tagname=treeview literalcontent=true>
<public:attach event=oncontentready onevent="oncontentready()" />
<public:attach event=ondocumentready onevent="ondocumentready()" />
<public:attach event="onscroll" onevent="onScroll()" />
<public:event name="onexpand" id="_tvevtExpand" />
<public:event name="oncollapse" id="_tvevtCollapse" />
<public:event name="onselectedindexchange" id="_tvevtSelect" />
<public:event name="oncheck" id="_tvevtCheck" />
<public:event name="onfirequeuedevents" id="_tvevtFireQueuedEvents" />
<public:event name="onnodebound" id="_tvevtNodeBound" />
<public:event name="onnodetypesbound" id="_tvevtNodeTypesBound" />
<public:event name="onhover" id="_tvevtHover" />
<public:event name="onunhover" id="_tvevtUnhover" />
<public:property name="clickedNodeIndex" GET="getClickedNodeIndex" />
<public:property name="defaultStyle" id="_tvpropDefaultStyle" GET="getDefaultStyle" PUT="setDefaultStyle" />
<public:property name="hoverStyle" id="_tvpropHoverStyle" GET="getHoverStyle" PUT="setHoverStyle" />
<public:property name="selectedStyle" id="_tvpropSelectedStyle" GET="getSelectedStyle" PUT="setSelectedStyle" />
<public:property name="childType" id="_tvpropChildType" GET="getChildType" PUT="setChildType" />
<public:property name="imageUrl" id="_tvpropImageUrl" GET="getImageUrl" PUT="setImageUrl" />
<public:property name="expandedImageUrl" id="_tvpropExpandedImageUrl" GET="getExpandedImageUrl" PUT="setExpandedImageUrl" />
<public:property name="selectedImageUrl" id="_tvpropSelectedImageUrl" GET="getSelectedImageUrl" PUT="setSelectedImageUrl" />
<public:property name="target" id="_tvpropTarget" GET="getTarget" PUT="setTarget" />
<public:property name="treeNodeSrc" id="_tvpropTreeNodeSrc" GET="getTreeNodeSrc" PUT="setTreeNodeSrc" />
<public:property name="treeNodeXsltSrc" id="_tvpropTreeNodeXsltSrc" GET="getTreeNodeXsltSrc" PUT="setTreeNodeXsltSrc" />
<public:property name="selectExpands" id="_tvpropSelectExpands" GET="getSelectExpands" PUT="setSelectExpands" />
<public:property name="expandLevel" id="_tvpropExpandLevel" GET="getExpandLevel" PUT="setExpandLevel" />
<public:property name="autoSelect" id="_tvpropAutoSelect" GET="getAutoSelect" PUT="setAutoSelect" />
<public:property name="treeNodeTypeSrc" id="_tvpropTreeNodeTypeSrc" GET="getTreeNodeTypeSrc" PUT="setTreeNodeTypeSrc" />
<public:property name="showLines" id="_tvpropShowLines" GET="getShowLines" PUT="setShowLines" />
<public:property name="showPlus" id="_tvpropShowPlus" GET="getShowPlus" PUT="setShowPlus" />
<public:property name="showToolTip" id="_tvpropShowToolTip" GET="getShowToolTip" PUT="setShowToolTip" />
<public:property name="indent" id="_tvpropIndent" GET="getIndent" PUT="setIndent" />
<public:property name="selectedNodeIndex" id="_tvpropSelectedNodeIndex" GET="getSelectedNodeIndex" PUT="setSelectedNodeIndex" />
<public:property name="systemImagesPath" id="_tvpropSystemImagesPath" GET="getSystemImagesPath" PUT="setSystemImagesPath" />
<public:method name="queueEvent" />
<public:method name="getTreeNode" />
<public:method name="addAt" />
<public:method name="createTreeNode" />
<public:method name="getTreeNodeType" />
<public:method name="createTreeNodeType" />
<public:method name="addTreeNodeType" />
<public:method name="add" />
<public:method name="databind" />
<public:method name="databindTypes" />
<public:method name="getChildren" />


</public:component>

 

按道理应该是你自己扩充了

能贴出代码学习一下吗

谢谢。  回复  更多评论
  


# re: asp.net1.1下权限配置系统从设计到实现(四) 2006-06-19 10:05 main
如果在系统中用户能够产生自己的子用户,应该如何做啊?感觉大哥做到的是到角色层次,是不是不用考虑下一级用户啊?
还有这个权限东东,是不是要程序员自己制定代号规则啊?比如1对应可以删除这样啊?小弟刚入门,请教!  回复  更多评论
  


# re: asp.net1.1下权限配置系统从设计到实现(四) 2006-06-20 08:53 kim
@main
呵呵,在这个系统中,不用管什么子用户的,只管给角色分配他所需要的权限即可,当我们添加一个新的角色时,实际上我们对角色授权,而不是对用户授权,因为角色和用户是多对多的关系,对用户而言,他只会属于某一个角色组.而与其他没什么关联的.
在这个权限系统中,是通过functionId,functionPointId来实现角色所对应的权限功能的,具体你可以看哈前面几节!特别是那几张表结构.  回复  更多评论
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值