第一种情况: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状态也可以二级联动?