.NET2.0TreeView使用脚本模拟选中结点

原创 2007年10月06日 16:43:00

前些天csdn有人问是否可以实现点击TreeNode的一行而不仅仅是点击TreeView的文字就可以选中该结点,我觉得用脚本是可以模拟做到的,特将结果写下来。既然是模拟,那么关键就是要骗过服务器端,让它真正为客户端所控制,我觉得这里的关键就是拼接出服务器端可认识的参数字符串。不难发现每个结点选中回传,参数是类似这样的-"sNew Node1//New Node2//New Node3//New Node4",所以一切也就明朗了。效果是点击结点左边空白区域同样选中了该结点。

<asp:TreeView ID="TreeView1" runat="server" ShowLines="True" onclick="javascript:showline()"
                OnSelectedNodeChanged
="TreeView1_SelectedNodeChanged">
                
<Nodes>
                    
<asp:TreeNode Text="New Node1" Value="New Node1">
                        
<asp:TreeNode Text="New Node2" Value="New Node2">
                            
<asp:TreeNode Text="New Node3" Value="New Node3">
                                
<asp:TreeNode Text="New Node4" Value="New Node4">
                                    
<asp:TreeNode Text="New Node5" Value="New Node5">
                                        
<asp:TreeNode Text="New Node6" Value="New Node6"></asp:TreeNode>
                                    
</asp:TreeNode>
                                
</asp:TreeNode>
                            
</asp:TreeNode>
                        
</asp:TreeNode>
                    
</asp:TreeNode>
                
</Nodes>
</asp:TreeView>

 

<script type="text/javascript"> 
function showline() 

    
//从点击行获取最外层table对象 
    var the_tab = get_Element(event.srcElement,"table"); 
    
var cells = the_tab.rows[0].cells.length-1
    
//获取最后一列内部html 
    var html = the_tab.rows[0].cells[cells].innerHTML; 
    
var subhtml = html.substring(html.indexOf('id='),html.length-html.indexOf('id=')); 
    
//获取nodeid 
    var nodeid = subhtml.substring(3,subhtml.indexOf(' '));  
    
var theobj = document.getElementById(nodeid); 
  
    
var num = nodeid.replace( "TreeView1t"," "); 
    
//数组存放从根结点到现节点的路径 
    var result= new   Array();  
    result.push(theobj.innerText);  
     
    
//将父节点text存到result 
    for(var j=num-1;j  >=0;j--)  
    {  
        
var up = document.getElementById("TreeView1t"+j);  
        
if(getlayer(up)  <getlayer(theobj)&&getlayer(up) >=2)  
        {  
            result.push(up.innerText);  
        }  
    }          
     
    
//拼接回传参数字符串 
    var layers = "s";  
    
for(var k=result.length-1;k  >=0;k--)  
    {  
       layers
+=result[k]+ '/';//关键是这里不需要再加转义字符 ' ' 
    }  

    layers 
= layers.substring(0,layers.length-1); 
    
//将treeview手动postback 
    __doPostBack( 'TreeView1',layers); 



//获取上层节点对象 
function get_Element(the_ele,the_tag){ 
the_tag 
= the_tag.toLowerCase(); 
if(the_ele.tagName.toLowerCase()==the_tag)return the_ele; 
while(the_ele=the_ele.offsetParent){ 
if(the_ele.tagName.toLowerCase()==the_tag)return the_ele; 

return(null); 


//获取当前点击行的层数 
function getlayer(obj)  
{  
   
return obj.parentElement.parentElement.parentElement.rows[0].cells.length; 
}  
</script>

 

protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
      Response.Write(
this.TreeView1.SelectedNode.Text);
}

 

Android手机上,利用bat脚本模拟用户操作

转载自:http://blog.csdn.net/up7cr/article/details/50577559 大家可能会遇到这样的情景: #  也许你是一个通过App的销售人员,需要不断...
  • lzm198707
  • lzm198707
  • 2017年05月05日 13:49
  • 1320

Photoshop脚本 > 复制图层并改变图层顺序

源自:http://coolketang.com/tutorials/menu4lesson6.html 本节将演示如何使用脚本,复制图层并插入到图层列表中某个位置。首先创建一个空白的脚本文档...
  • fzhlee
  • fzhlee
  • 2014年11月19日 13:22
  • 1315

一个CURL模拟登陆论坛的脚本+cookie伪造的方法

前几天玩了一个游戏, 最后一关用了一个trick~(模拟提交数据) 想起了以前自己写的一个模拟登陆北邮人论坛(旧版)的程序(因为首先要找到logind的地址,以及需要传递哪些参数,wForum容易满足...
  • wusuopuBUPT
  • wusuopuBUPT
  • 2014年01月13日 17:18
  • 9297

用shell脚本模拟用户按键、触摸操作

之前写过两篇关于Android中模拟用户操作的博客(其实用一篇是转载的),现在就来讲讲用shell脚本来模拟用户按键操作。本次的目标是用shell脚本打开微信并在其搜索框中搜索相关内容。     ...
  • testdeveloper
  • testdeveloper
  • 2016年05月02日 22:44
  • 2470

一个简单的远程登录脚本

一个简单的远程登录脚本import pexpect #Pexpect是一个用来启动子程序并对其进行自动控制的纯 Python 模块 我们通过它来调用ssh来实现远程登录import stru...
  • it_roseonly
  • it_roseonly
  • 2017年06月26日 17:18
  • 194

自动化测试之元素定位

做自动化测试最基础的就是要先找到待操作的元素,有八种定位方法,下面会一一介绍。1、什么是元素:HTML 元素指的是从开始标签(start tag)到结束标签(end tag)的所有代码。2、查找一个元...
  • jq656021898
  • jq656021898
  • 2017年03月13日 22:50
  • 234

easy ui tree 默认选中指定行

提供一个JqueryUI api网站供学习。地址:http://www.jeasyui.com/   1、html中设置显示tree。 2、在加载js时候先注册tree。   ...
  • u013568834
  • u013568834
  • 2015年07月02日 11:01
  • 1579

Android随笔之——用shell脚本模拟用户按键、触摸操作

之前写过两篇关于Android中模拟用户操作的博客(其实用一篇是转载的),现在就来讲讲用shell脚本来模拟用户按键操作。本次的目标是用shell脚本打开微信并在其搜索框中搜索相关内容。   ...
  • gnnulzy
  • gnnulzy
  • 2017年07月13日 10:26
  • 298

Android自动化测试之Shell脚本一——模拟触屏事件

摘自:http://guolin.guosfamily.com/2012/02/15/android-automated-test-by-shell-touch-event/ Android...
  • a343315623
  • a343315623
  • 2016年05月17日 16:10
  • 343

利用js脚本模拟鼠标点击事件

1. 前言最近牛课网上推出了一个 【编程之美01期】编程黑科技-如何用脚本抢月饼的活动, 觉得蛮好玩的,正好试验一下2. 思路 首先先写一个简单的网页, 这里我们直接写一个记录点击次数然后跳转到牛客网...
  • zhyh1435589631
  • zhyh1435589631
  • 2016年11月01日 20:02
  • 7010
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.NET2.0TreeView使用脚本模拟选中结点
举报原因:
原因补充:

(最多只允许输入30个字)