Extjs 树形ID重复

从两个表中取出数据 显示到页面上,使用数据库的id作为node的节点

节点就会因为id重复而无法正常的显示

重写TreeLoader的 getParams方法

Ext.ns("XG.Control.BaseAyncTreeLoader");
XG.Control.BaseAyncTreeLoader=Ext.extend(Ext.tree.TreeLoader,{
    constructor:function(config){
        XG.Control.BaseAyncTreeLoader.superclass.constructor.call(this,config); 
    },
    getParams: function(node){
        var buf = [], bp = this.baseParams;
        if(this.directFn){
            //buf.push(node.attributes.id);
            buf.push(node.attributes.treeid);
            if(bp){
                if(this.paramOrder){
                    for(var i = 0, len = this.paramOrder.length; i < len; i++){
                        buf.push(bp[this.paramOrder[i]]);
                    }
                }else if(this.paramsAsHash){
                    buf.push(bp);
                }
            }
            return buf;
        }else{
            for(var key in bp){
                if(!Ext.isFunction(bp[key])){
                    buf.push(encodeURIComponent(key), "=", encodeURIComponent(bp[key]), "&");
                }
            }
            //buf.push("node=", encodeURIComponent(node.attributes.id));
            buf.push("node=", encodeURIComponent(node.attributes.treeid));
            return buf.join("");
        }
    }
});
注释掉选中行,这样发送请求时就是node使用"treeid"属性了



你可能感兴趣的:(Extjs 树形ID重复)