CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

只差一点点:页面刷新后用客户端脚本实现treeview自动展开?

楼主shuangren(候鸟)2003-08-01 09:48:40 在 .NET技术 / ASP.NET 提问

我把点击节点的NodeData值当成一个treeID参数传递到下一页  
  如:http://location/index.aspx?treeID=170  
  现在程序可以运行,不报错,但只偶尔在第一次就选中子节点的情况下才执行正常,大多数时候无法展开,我不知道哪里错了,请高手帮忙  
   
  <script   language="javascript">  
  function   test()  
  {  
      var   urlstr=location.href.split("?")[1];  
      if   (urlstr!=null)  
      {  
          urlstr=urlstr.split("treeID=")[1];  
          urlstr=urlstr.split("&")[0];//取得treeID值  
          var   mNodeArray=new   Array();  
          var   strindex;  
   
          mNodeArray=myTreeView.getChildren();  
          bl(mNodeArray,urlstr);  
          strindex=null;  
          mNodeArray=null;  
      }  
  }  
  function   bl(arr,str)  
  {  
      var   i;  
      for(i=0;i<arr.length;i++)  
      {  
          var   mNode=arr[i];  
          var   strtemp=mNode.getAttribute("NodeData");  
          if(strtemp==str)  
          {  
              strindex=mNode.getNodeIndex();  
              if(strindex.indexOf(".")!=-1)//当点击节点不是根节点时执行下一条语句  
                  (mNode.getParent()).setAttribute("Expanded","True");//这样写行吗?  
              myTreeView.selectedNodeIndex=strindex;  
          }  
          if((mNode.getChildren().lenght)!=0)  
          bl(mNode.getChildren(),str);//递归遍历节点  
      }  
  }  
  </script> 问题点数:50、回复次数:10Top

1 楼shuangren(候鸟)回复于 2003-08-01 10:16:02 得分 0

意思就是页面刷新后让treeview保持刷新前的展开状态  
   
  if(strindex.indexOf(".")!=-1)//刚才注释写错了,应该是:当点击节点是子节点时执行下一条语句,因为根节点没有getParent()方法,用了会出错Top

2 楼fisheren(渔人)回复于 2003-08-01 10:28:24 得分 15

我觉得应该这样:  
  var   tpNode=mNode.getParent();  
  tpNode.setAttribute("Expanded","True");  
   
  或者  
  eval((mNode.getParent()).setAttribute("Expanded","True"));Top

3 楼szhuk(小佳)回复于 2003-08-01 10:39:20 得分 15

ExpandAll属性设为true。Top

4 楼shuangren(候鸟)回复于 2003-08-01 10:41:56 得分 0

谢谢,但是没有任何变化Top

5 楼shuangren(候鸟)回复于 2003-08-01 10:58:14 得分 0

客户端好像没有ExpandAll属性Top

6 楼DoNotTomcat(TOM)回复于 2003-08-01 11:04:45 得分 10

gzTop

7 楼shuangren(候鸟)回复于 2003-08-01 11:24:56 得分 0

真晕,找到原因了,程序没问题,是一个很...不相干的小毛病引起的。唉,总算成功了  
   
  耽误大家许多时间,非常抱歉,就把上面那段代码分享给大家吧,CSDN没有实现此功能的贴,昨晚ao了一个通宵才写了那么十几行,没办法,菜Top

8 楼shuangren(候鸟)回复于 2003-08-01 15:54:26 得分 0

发现节点不展开但又不报错的原因,可能是脚本执行的过早,treeview还没完成初使化。  
  以前曾经碰过到把<script>块放在<body>前出错而放在</body>后不出错的现象。  
  因此应该尽量把这类操作页面元素的脚本往后放,甚至用一些事件来控制脚本运行的时间。Top

9 楼diysoft(Frog Prince)回复于 2003-08-02 14:39:14 得分 10

真晕,找到原因了,程序没问题,是一个很...不相干的小毛病引起的。唉,总算成功了  
   
  耽误大家许多时间,非常抱歉,就把上面那段代码分享给大家吧,CSDN没有实现此功能的贴,昨晚ao了一个通宵才写了那么十几行,没办法,菜  
   
  -------------------------------------------------------------  
   
  怎么解决的,   什么样的小毛病呢???Top

10 楼shuangren(候鸟)回复于 2003-08-03 13:40:44 得分 0

diysoft(Frog   Prince)    
  深层原因还不清楚,那需要对页面的加载及解释的顺序有深刻了解才行,我估计可能是上面所说的“脚本执行的过早,treeview还没完成初使化”,能够确定的是程序没问题,如果发生不展开不报错的情况,尽量把的脚本往后放,甚至用一些事件来推后脚本运行的顺序,比如说用onload事件来触发脚本。Top

相关问题

  • 关于js脚本刷新页面的问题
  • 用ASP或者各种脚本语言如何刷新本页面呢?
  • 如何通过脚本来控制页面可以定时刷新????
  • 页面刷新
  • 刷新页面?
  • 页面刷新
  • 如何在服务器的事件里发送脚本让页面刷新后focus到某一<asp:textbox>?
  • 关于treeview,点击节点刷新页面的问题!
  • 实现点击treeview的节点不刷新页面的方法
  • 页面的刷新

关键词

  • 节点
  • 执行
  • 刷新
  • 展开
  • treeview
  • getparent

得分解答快速导航

  • 帖主:shuangren
  • fisheren
  • szhuk
  • DoNotTomcat
  • diysoft

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo