[原创]通过点击节点或选择节点前checkbox实现树节点单选功能!

描述一下需求:

      加入有3个第一层的节点,然后这个三个第一层的节点下面都有3到5个不等的子节点。在每个第一层下面的子节点要单选一个,提交的时候点击另外的一个Button就可以了。上次你做的Demo,可以实现这个功能了,但是如果用户直接在CheckBOx而不是点节点的话,还是可以多选。后来我处理为不显示CheckBOx,点击后才出现CheckBOx,这样避免用户直接点CheckBox而出现在一个父节点下面选两个的情况。但老板要求必须全部都有CheckBox,并且点CheckBOx和点节点需要有同样的效果,所有我一直想法当用户点节点前面的CheckBox,也相当于点节点的效果,就是能在客户端触发一下Click。


None.gif < script language = " javascript " >
None.gif         
function  CheckOne()
None.gif         {
None.gif          
var  cIndex = TreeView1.clickedNodeIndex;
None.gif         
None.gif          
None.gif          
var  tmp = cIndex.split( " . " );
None.gif          
if  (tmp.length == 2 )   // 代表都是第2层节点
None.gif
          {
None.gif            
var  pNode = TreeView1.getTreeNode(cIndex);
None.gif            
var  parentNode = pNode.getParent();
None.gif            
var  NodeArray  = new  Array();
None.gif            NodeArray
= parentNode.getChildren();
None.gif            
for ( var  i = 0 ;i < NodeArray.length;i ++ )
None.gif            {
None.gif                
var  cNode = NodeArray[i];
None.gif                cNode.setAttribute('Checked','
false ');
None.gif                
if  (cNode.getAttribute( " Text " ) == pNode.getAttribute( " Text " ))
None.gif                {
None.gif                 cNode.setAttribute('Checked','
true ');
None.gif                 document.all(
" Hidden1 " ).value = cNode.getAttribute( " Text " );
None.gif                
None.gif                }
None.gif                
None.gif            }
None.gif          }
None.gif         }
None.gif        
</ script >

None.gif < DIV  style ="FONT-SIZE: 12px; Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px"  ms_positioning ="text2D" >< FONT  face ="Times New Roman" > 再详细的描述一下需求吧: < BR >
None.gif                    加入有3个第一层的节点,然后这个三个第一层的节点下面都有3到5个不等的子节点。在每个第一层下面的子节点要单选一个,提交的时候点击另外的一个Button就可以了。上次你做的Demo,可以实现这个功能了,但是如果用户直接在CheckBOx而不是点节点的话,还是可以多选。后来我处理为不显示CheckBOx,点击后才出现CheckBOx,这样避免用户直接点CheckBox而出现在一个父节点下面选两个的情况。但老板要求必须全部都有CheckBox,并且点CheckBOx和点节点需要有同样的效果,所有我一直想法当用户点节点前面的CheckBox,也相当于点节点的效果,就是能在客户端触发一下Click。
</ FONT >< BR >
None.gif                
< BR >
None.gif            
</ DIV >
None.gif            
< iewc:TreeView  id ="TreeView1"  style ="Z-INDEX: 102; LEFT: 8px; POSITION: absolute; TOP: 136px"  runat ="server" >
None.gif                
< iewc:TreeNode  Text ="Node0"  Expanded ="True" >
None.gif                    
< iewc:TreeNode  CheckBox ="True"  Text ="Node3" ></ iewc:TreeNode >
None.gif                    
< iewc:TreeNode  CheckBox ="True"  Text ="Node4" ></ iewc:TreeNode >
None.gif                    
< iewc:TreeNode  CheckBox ="True"  Text ="Node5" ></ iewc:TreeNode >
None.gif                
</ iewc:TreeNode >
None.gif                
< iewc:TreeNode  Text ="Node1" >
None.gif                    
< iewc:TreeNode  Text ="Node6" ></ iewc:TreeNode >
None.gif                    
< iewc:TreeNode  Text ="Node7" ></ iewc:TreeNode >
None.gif                    
< iewc:TreeNode  Text ="Node8" ></ iewc:TreeNode >
None.gif                
</ iewc:TreeNode >
None.gif                
< iewc:TreeNode  Text ="Node2" >
None.gif                    
< iewc:TreeNode  Text ="Node9" ></ iewc:TreeNode >
None.gif                    
< iewc:TreeNode  Text ="Node10" ></ iewc:TreeNode >
None.gif                    
< iewc:TreeNode  Text ="Node11" ></ iewc:TreeNode >
None.gif                
</ iewc:TreeNode >
None.gif            
</ iewc:TreeView >< INPUT  id ="Hidden1"  style ="Z-INDEX: 103; LEFT: 24px; POSITION: absolute; TOP: 296px"  type ="hidden"
None.gif                name
="Hidden1"  runat ="server" >
None.gif            
< asp:Button  id ="Button1"  style ="Z-INDEX: 104; LEFT: 24px; POSITION: absolute; TOP: 440px"  runat ="server"
None.gif                Text
="Submit" ></ asp:Button >
None.gif            
< asp:Label  id ="Label1"  style ="Z-INDEX: 105; LEFT: 96px; POSITION: absolute; TOP: 448px"  runat ="server"
None.gif                Width
="280px"  ForeColor ="Red"  Font-Size ="12px" ></ asp:Label >

Imports Microsoft.Web.UI.WebControls
ExpandedBlockStart.gif ContractedBlock.gif Private   Sub Page_Load() Sub Page_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load
InBlock.gif        TreeView1.Attributes.Add(
"oncheck""javascript:CheckOne();")
InBlock.gif        TreeView1.Attributes.Add(
"onclick""javascript:CheckOne();")
InBlock.gif        
Dim tnode As TreeNode
InBlock.gif        
For Each tnode In TreeView1.Nodes(0).Nodes
InBlock.gif            
If tnode.Text = Hidden1.Value.Trim() Then
InBlock.gif                tnode.Checked 
= True
InBlock.gif            
Else
InBlock.gif                tnode.Checked 
= False
InBlock.gif            
End If
InBlock.gif        
Next
ExpandedBlockEnd.gif    
End Sub

None.gif
ExpandedBlockStart.gifContractedBlock.gif    
Private   Sub Button1_Click() Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click
InBlock.gif        Label1.Text 
= "您选择的节点为:" + Hidden1.Value
ExpandedBlockEnd.gif    
End Sub

转载于:https://www.cnblogs.com/goody9807/archive/2005/05/08/150627.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值