ligerui实现select二级联动

第一种情况:from中的二级联动

{ display: "主行业", name: "categorymain", newline: false, type: "select",
          editor: { type: 'select', url: 'compinfoaction!getcategorymain.action', parms :{id:0},valueField:'id', textField:'name',
                 onSelected: function (value)
                 {
                       $.post("compinfoaction!getcategorysub.action",{
                            categorymain:value
                       },function(data,textStatus){
                              var combo = liger.get('categorysub2');
                               if (!combo) return;
                               combo.set('data', data);
                        },"json");
                 }
           }
  },
{ display: "子行业", name: "categorysub",comboboxName:'categorysub2', newline: false, type: "select",
        editor: { type: 'select',valueField:'id', textField:'name'}
}

这个实现的原理是在第一个下拉列表选中值后,给第二个下拉列表动态赋值。第二个下拉列表定义comboboxName:'categorysub2',第一个下拉列表通过这个名称取得这个对象,并为该对象赋值。

第二种情况:grid中的二级联动

var tempextno="0";

{ display: '分机号', name: 'extno',width:50, type: "select",
      editor: { type: 'select', url: 'accountaction!getaccountextno.action', parms :{exttype:0},valueField:'extno', textField:'extno',
                 onSelected:function(value){
                         tempextno=value;
                   }
         }
},

{ display: "分机1", name: "extnoa", width:50, type: "select",
      editor: { type: 'select',valueField:'extno', textField:'extno',
             ext:function(){
                     var options =  {
                           url:"accountaction!getaccountextno.action",
                            parms:{exttype:tempextno},
                       };
                   return options;
               }
      }
}

这个的原理,是点击第二个下拉列表时,调用ext对应的方法,为data赋值。

前提是grid的clickToEdit: true,只有为true时才能在点击第二个下拉列表时动态加载值。但在clickToEdit: false,enabledEdit: true时,点击修改按钮该行进入beginEdit状态后,这个联动就不起作用了。有谁知道ext这个参数的内部处理方式吗?能不能做到beginEdit状态也可以二级联动?

你可能感兴趣的:(select,二级联动,ligerUI)