修改前一个下拉框的数据,使后一个下拉框中的内容发生改变,就是级联下拉。
可以在前一个下拉框的onUpdateValue事件中给后一个下拉框的option关联的data设置filter,然后在后一个下拉框的onShowOption事件中调用data的刷新就可以使内容发生变化
当然在修改了前一个下拉的选择数据后,后一个下拉框的数据也要清空,同样在前一个下拉框的onUpdateValue事件操作,如下:
第一个下拉框的定义
<div class="x-gridSelect" component="$UI/system/components/justep/gridSelect/gridSelect" xid="gridSelect6" bind-ref="$model.bizData2.ref("fDQID")" bind-labelRef="$model.bizData2.ref("fDQ")" onUpdateValue="gridSelect6UpdateValue">
<option xid="option6" data="RegionData" value="DEMO_Region" label="fName"/>
</div>
Model.prototype.gridSelect6UpdateValue = function(event) {
var data = this.comp("bizData2");
var RegionID = data.getValue("fDQID");
var ProvinceData = this.comp("ProvinceData")
ProvinceData.setFilter("filter1", "DEMO_Province.fRegionID=" + RegionID);
data.setValue("fSID", "");
data.setValue("fS", "");
this.isReload = true;
};
第二个下拉框的定义
<div class="x-gridSelect" component="$UI/system/components/justep/gridSelect/gridSelect" xid="gridSelect5" bind-ref="$model.bizData2.ref("fSID")" bind-labelRef="$model.bizData2.ref("fS")" onShowOption="gridSelect5ShowOption">
<option xid="option5" data="ProvinceData" value="DEMO_Province" label="fName" autoLoad="false"/>
</div>
Model.prototype.gridSelect5ShowOption = function(event) {
if (this.isReload) {
this.comp('ProvinceData').refreshData();
this.isReload = false;
}
};
js中用的是this.isReload是在model中定义的实例变量
var Model = function() {
this.callParent();
var isReload = false;
};


评一波