easyui中combotree根据关键字进行本地过滤

来源:互联网 发布:db2 删除表 关系 sql 编辑:程序博客网 时间:2024/06/02 05:08

注:combotree没有获取所有数据的方法,这里所使用的都是通过方法先取的缓存中的数据dataArr,如果要动态获取的话需要调用tree的相关方法获取。


easyui中combotree根据关键字进行本地过滤,主要原理是调用tree的doFilter方法进行过滤。示例:

$('#AORGID').combotree({    data: dataArray, //所有数据    editable: true,    //直接过滤,数据太多时不行,太卡了,放弃     filter: function(q, row){         return row.text.indexOf(q) >= 0;    },    //本地过滤,根据输入关键字的值调用tree的过滤方法    keyHandler: {        query: function(q, e) {            $('#AORGID').combotree('tree').tree('doFilter', q)        }    }})


绑定combotree输入框焦点事件,如果输入的关键字没有对应的ID值那么输入框中的关键字也会清除掉。示例:

//combotree失去焦点时如果文本值没有对应ID就清除文本$('#AORGID').next().children(':text').on('blur', function() {    var val = $(this).val();    var orgId = getTreeId(dataArr, val);    $('#AORGID').combotree('setValue', orgId);});//根据text文字查找树形菜单中的ID,要求递归function getTreeId(data, val) {    var tt = '';    function GetSubId(jsonData, val) {        for(var i = 0; i < jsonData.length; i++) {            if(jsonData[i].text == val)                tt = jsonData[i].id;            else {                if(jsonData[i].hasOwnProperty("children")) {                    GetSubId(jsonData[i].children, val);                }            }        }    }    GetSubId(data, val);    return tt;}
原创粉丝点击