兔子专栏

刘晓逸(liuxiaoyi666)的小地盘

用户操作
[即时聊天] [发私信] [加为好友]
刘晓逸ID:liuxiaoyi666
70983次访问,排名1449好友121人,关注者428
微软最有价值专家,asp,asp.net
liuxiaoyi666的文章
原创 51 篇
翻译 0 篇
转载 0 篇
评论 91 篇
最近评论
wwd252:支持这种文章,lz能多写点就好了
liuxiaoyi666:我在有一次部门内部的讲课中,我提到的方法是先分析涉众利益,根据利益相关度及权重进行计算,不过通常我所说的计算并非真实的计算,当然如果真的有数据的可以算的,这个的思考模型来自于决策论
holiday1001:分析团队人员的兴趣点很重要, 用什么计算公式去分析呢?
coder_java:老师您好,我想请教如何在上传时验证服务器端文件是否已经存在,若存在弹出js提示是否覆盖,确定时,就覆盖已有的文件,取消就返回浏览状态,若有示例能否发到小弟email:pigdone@126.com, 谢谢!
loveblack123:好文
文章分类
收藏
    相册
    朋友
    lingll的专栏
    孟子E章
    我小弟寻斌
    殷鹏
    特种兵
    莫依
    虎子的blog
    超级笨狼
    陈锐新书
    龙的天空
    自己的其他blog
    博客园的blog
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 关于合成模式的javascript的一个treeview例子收藏

    新一篇: 在asp.net中关于桥接模式的一个应用 | 旧一篇: 用vc6操作xml以及xmldom的简单介绍

    合成模式的意思是说用一个对象加载另外一个对象进来而形成的,非常适合树型结构,也很类似链表结构

    下面举一个我写的javascript的treeview做例子

       var treebase = {
     rootnum        : 0 
    };

       function treeview(nodetxt,nodehref,nodetag){
         this.childNodes=[];
      this.txt=nodetxt;
      if(nodehref==null)
       this.href="";
      else
      this.href=nodehref;
      this.target=nodetag;
      if(this.parentNode==null)
      {
        this.id="root_"+treebase.rootnum;
        treebase.rootnum=treebase.rootnum+1;
      }
     }

       treeview.prototype.toString=function(){
          var str="<div>";
       var c_node=this;
       while(c_node.parentNode)
       {
          str=str+"1";
       c_node=c_node.parentNode;
       }
       if (this.childNodes.length!=0)
       {
        if(this.href.length>0)
       str=str+"<a href='"+this.href+"' target='"+this.target+"' onclick=\"javascript:showdiv('"+this.id+"_child')\">"+this.txt+"</a>";
        else     
       str=str+"<a href=\"javascript:showdiv('"+this.id+"_child')\">"+this.txt+"</a>";
        }
        else
        {
            if(this.href.length>0)
       str=str+"<a href='"+this.href+"' target='"+this.target+"'>"+this.txt+"</a>";
        else     
       str=str+this.txt;
      }  
      
        
       if (this.childNodes.length!=0)
       {
         str=str+"<div style=\"display:none;\" id=\""+this.id+"_child\">";
      
       //var save_pos=new Array();
      // save_pos.add(this.id);
        for(var int_len=0;int_len<this.childNodes.length;int_len++)
       { 
       //save_pos.push(this.id,int_len);
       str=str+this.childNodes[int_len];
       //int_len=save_pos.find(this.id);
        }  
      str=str+"</div>";
       }
      
       str=str+"</div>";
       return str;
       }

       function showdiv(div_id){
        var obj_id=document.getElementById(div_id);
     obj_id.style.display=(obj_id.style.display=='none'?'block':'none');
       }

       treeview.prototype.add=function(node){
         node.parentNode=this;
         this.childNodes[this.childNodes.length]=node;
      if (node.childNodes.length==0)
      {
        node.id=this.id+"_child"+this.childNodes.length;    
       }
      if(node.target==null){
       node.target=this.target;
      }
       } 

     

    这里就是用parentNode记录当前对象而形成了一个双链结构

    用的时候

    var node1=new treeview("node1");
    var node2=new treeview("node2");
    node1.add(node2);
    document.write(node1);
    这样就可以了

    发表于 @ 2007年04月03日 09:43:00|评论(loading...)|编辑

    新一篇: 在asp.net中关于桥接模式的一个应用 | 旧一篇: 用vc6操作xml以及xmldom的简单介绍

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © liuxiaoyi666