在项目中遇到的一个对我来说很棘手的一个问题,在Easyui 中可编辑表格中实现级联  大类,品牌,名称的三级联动   
在别的地方看到: field:'aa1' ,   
                            title:'主讲老师分类' ,  
                            width:100 ,   
                            editor : {    
                                type : 'combobox', 
                               options : {    
                                    url:'codeTypeAction_search.action?parentId=0&type=27',  
                                    valueField:'id' ,   
                                    textField:'name',  
                                    onSelect:function(data){  
                                        var row = $('#set_schedule').datagrid('getSelected');  
                                        var rowIndex = $('#set_schedule').datagrid('getRowIndex',row);//获取行号  
                                        var thisTarget = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'aa1'}).target;  
                                        var value = thisTarget.combobox('getValue');  
                                          
                                        var target = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'bb1'}).target;  
                                        target.combobox('clear'); //清除原来的数据  
                                        var url = 'codeTypeAction_search.action?type=28&parentId='+value;  
                                        target.combobox('reload', url);//联动下拉列表重载  
                                    }  
                                }    
                            }  , {  
                            field:'bb1' ,   
                            title:'主讲老师细类' ,  
                            width:100 ,   
                            editor : {    
                                type : 'combobox',    
                                options : {    
                                    url:'codeTypeAction_search.action?type=28',  
                                    valueField:'id' ,   
                                    textField:'name',  
                                    onSelect:function(data){  
                                        var row = $('#set_schedule').datagrid('getSelected');  
                                        var rowIndex = $('#set_schedule').datagrid('getRowIndex',row);//获取行号  
                                        var thisTarget = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'bb1'}).target;  
                                        var value = thisTarget.combobox('getValue');  
                                          
                                        var target = $('#set_schedule').datagrid('getEditor', {'index':rowIndex,'field':'morningTeacherId'}).target;  
                                        target.combobox('clear'); //清除原来的数据  
                                        var url = 'teacherAction_search.action?teacherTypeId2='+value;  
                                        target.combobox('reload', url);//联动下拉列表重载  
                                    }  
                                }    
                            }    
                        },  
这种方法但是不懂得那个Url在我项目中怎么写 怎么用    还有就是我只有两张表 一个大类表  一个商品表 商品表中有品牌 名称两张表主外键关系,所以不知道品牌 名称怎么绑定combobox   有人说可以用name值绑定  但是我试过  为什么没有一点点反应啊?  实在是不能再拖了    项目延期了   求大神搭把手啊!

解决方案 »

  1.   

    请选择: <input id="txtShouName" style="width:170px;">    
    <input id="txtPipeRowName" style="width:150px;">       
    <input  id="txtPipeName" style="width:150px;">  // 一层Combo  
    var srmCombx = $("#txtShouName").combobox({  
    loader:function(param,success,error){  
        $.ajax({  
    url: '${CTX_ROOT}/TEquipmentsController?method=getEquipmentByParId&id='+selectSgId+'',  
    dataType: 'json',  
    success: function(data){  
    data.unshift({equipmentid:'',equipmentname:'全部'});  
    success(data);  
    },  
                   error: function(){  
    error.apply(this, arguments);  
    }  
    });  
       },  
       onSelect:function(record){  //onSelect 用户点击时触发的事件  在此的意义在于,用户点击一级后自动二级combobox  
        piperowCombx.combobox({  
    loader:function(param,success,error){  
        $.ajax({  
    url: '${CTX_ROOT}/TEquipmentsController?method=getEquipmentByParId&id='+$("#txtShouName").combobox("getValue")+'',  
    dataType: 'json',  
    success: function(data){  
    data.unshift({equipmentid:'',equipmentname:'全部'});  
    success(data);  
    },  
                   error: function(){  
    error.apply(this, arguments);  
    }  
    });  
       },  
       onSelect:function(record){ //这里也使用了onSelect事件,在二级combobox被用户点击时触发三级combobox  
        pipeCombx.combobox({  
    loader:function(param,success,error){  
        $.ajax({  
    url: '${CTX_ROOT}/TEquipmentsController?method=getEquipmentByParId&id='+$("#txtPipeRowName").combobox("getValue")+'',  
    dataType: 'json',  
    success: function(data){  
    data.unshift({equipmentid:'',equipmentname:'全部'});  
    success(data);  
    },  
                   error: function(){  
    error.apply(this, arguments);  
    }  
    });  
       },  
       valueField: 'equipmentid',     
       textField: 'equipmentname',  
       value:'',  
       editable:false  
    });  
       },  
       onLoadSuccess:function(){  //清空三级下拉框 就是成功加载完触发的事件 当一级combobox改变时,二级和三级就需要清空  
        pipeCombx.combobox("clear");  
        pipeCombx.combobox('setValue', '全部'); //给combobox下拉框设置一个值,否则为空不好看  
       },  
       valueField: 'equipmentid',     
       textField: 'equipmentname',  
       value:'',  
       editable:false  
    }).combobox("clear"); //清空二级下拉框  
      
       },  
       valueField: 'equipmentid',     
       textField: 'equipmentname',  
       value:'',  
       editable:false  
    });  
    /******************************************************************************************************/  
    //下面的俩个是组件,  
      
    //  二层Combo  
    var piperowCombx = $("#txtPipeRowName").combobox({  
    loader:function(param,success,error){  
        $.ajax({  
    url: '${CTX_ROOT}/TEquipmentsController?method=getEquipmentByParId&id='+$("#txtShouName").combobox("getValue")+'',  
    dataType: 'json',  
    success: function(data){  
    data.unshift({equipmentid:'',equipmentname:'全部'});  
    success(data);  
    },  
                   error: function(){  
    error.apply(this, arguments);  
    }  
    });  
       },  
       valueField: 'equipmentid',     
       textField: 'equipmentname',  
       value:'',  
       editable:false  
    });  
      
    //三层Combo  
    var pipeCombx=$("#txtPipeName").combobox({  
    loader:function(param,success,error){  
        $.ajax({  
    url: '${CTX_ROOT}/TEquipmentsController?method=getEquipmentByParId&id='+$("#txtPipeRowName").combobox("getValue")+'',  
    dataType: 'json',  
    success: function(data){  
    data.unshift({equipmentid:'',equipmentname:'全部'});  
    success(data);  
    },  
                   error: function(){  
    error.apply(this, arguments);  
    }  
    });  
       },  
       valueField: 'equipmentid',     
       textField: 'equipmentname',  
       value:'',  
       editable:false  
    });