JQuery插件-级联选择(适用于TreeView)

转自http://zane.cnblogs.com/, 原文地址http://www.cnblogs.com/Zane/archive/2007/06/18/786819.html,在此感谢原文作者。本人也写过一篇相关的文章,不过没有用jquery,作者做成插件以后使用更方便了。

    首先,分析一下TreeView在客户端生成的html。TreeView中的checkbox的id是TreeView的id + n + 数字 + CheckBox,其下级的checkbox集合则是包含在将该checkbox的id中的CheckBox替换成Nodes的div中所有的checkbox集合。而其上级checkbox的id是将该checkbox的父div的id中的Nodes替换成CheckBox。先看截图:

用法如下:

CascadingSelect : function(container, node, target)
当点击checkbox时调用这个方法,其中参数
container:容器的ID,如果使用母版页请用ClientID
node:包括key(关键字属性,一般使用checkbox的title属性),type(关键字类型,设置number表示数字,否则表示字符)
target:存放所选checkbox的控件,一般使用HiddenField

CascadingRefresh : function(container, node,  target)

PostBack时刷新checkbox的选择状态,参数同上
示例如下:

< script type = " text/javascript " >
    $(
        
function ()
        
{
            $().CascadingRefresh(
"<%= this.TreeView1.ClientID %>"{key: "title", type: ""}"<%= this.ID.ClientID %>");
            
            $(
"input[@type='checkbox']", $("#<%= this.TreeView1.ClientID %>")).click(
                
function()
                
{
                    $(
this).CascadingSelect("<%= this.TreeView1.ClientID %>"{key: "title", type: ""}"<%= this.ID.ClientID %>");
                }
);
        }
);
    
</ script >

    
< asp:TreeView ID = " TreeView1 "  runat = " server " >
        
< Nodes >
            
< asp:TreeNode ShowCheckBox = " True "  Text = " 1 "  Value = " 1 " >
                
< asp:TreeNode ShowCheckBox = " True "  SelectAction = " None "  Text = " 1.1 "  Value = " 1.1 " >
                    
< asp:TreeNode ShowCheckBox = " True "  Text = " 1.1.1 "  Value = " 1.1.1 " ></ asp:TreeNode >
                    
< asp:TreeNode ShowCheckBox = " True "  Text = " 1.1.2 "  Value = " 1.1.2 " ></ asp:TreeNode >
                
</ asp:TreeNode >
                
< asp:TreeNode ShowCheckBox = " True "  Text = " 1.2 "  Value = " 1.2 " ></ asp:TreeNode >
                
< asp:TreeNode ShowCheckBox = " False "  Text = " 1.3 "  Value = " 1.3 " >
                    
< asp:TreeNode ShowCheckBox = " True "  Text = " 1.3.1 "  Value = " 1.3.1 " ></ asp:TreeNode >
                    
< asp:TreeNode ShowCheckBox = " True "  Text = " 1.3.2 "  Value = " 1.3.2 " ></ asp:TreeNode >
                
</ asp:TreeNode >
            
</ asp:TreeNode >
        
</ Nodes >
    
</ asp:TreeView >

/Files/Zane/MultiSelect_20070618.rar



<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JQuery级联选择插件可以方便地实现多级联选择,常用于省市区、品牌系列等多级选择场景。以下是一个基于JQuery级联选择插件的示例代码: HTML部分: ```html <select id="province"> <option value="">请选择省份</option> <option value="1">浙江省</option> <option value="2">江苏省</option> </select> <select id="city"> <option value="">请选择城市</option> </select> <select id="district"> <option value="">请选择区县</option> </select> ``` JS部分: ```javascript $(function(){ $("#province").change(function(){ var pid = $(this).val(); if (pid == "") { $("#city").html("<option value=''>请选择城市</option>"); $("#district").html("<option value=''>请选择区县</option>"); return; } $.ajax({ type: "GET", url: "getCity.php", data: {"pid": pid}, dataType: "json", success: function(data){ var options = "<option value=''>请选择城市</option>"; for (var i=0; i<data.length; i++) { options += "<option value='" + data[i].id + "'>" + data[i].name + "</option>"; } $("#city").html(options); $("#district").html("<option value=''>请选择区县</option>"); } }); }); $("#city").change(function(){ var cid = $(this).val(); if (cid == "") { $("#district").html("<option value=''>请选择区县</option>"); return; } $.ajax({ type: "GET", url: "getDistrict.php", data: {"cid": cid}, dataType: "json", success: function(data){ var options = "<option value=''>请选择区县</option>"; for (var i=0; i<data.length; i++) { options += "<option value='" + data[i].id + "'>" + data[i].name + "</option>"; } $("#district").html(options); } }); }); }); ``` 以上代码实现了省市区三级联选择,当省份选择发生变化时,通过ajax请求获取对应城市列表并更新城市选择框;当城市选择发生变化时,通过ajax请求获取对应区县列表并更新区县选择框。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值