前一个orgSelectPC下拉内容显示非人员的组织数据,后一个orgSelectPC下拉内容只显示人员的数据,前一个下拉修改了选择数据,使后一个的orgselctPC下拉内容发生改变,就可以显示部门人员级联下拉
可以在部门的orgSelectPC的onUpdateValue事件中给人员的orgSelectPC下拉区域的data设置filter,然后在人员orgSelectPC的onShowOption事件中调用data的刷新就可以使内容发生变化
当然在部门的orgSelectPC修改选择数据后,人员的orgSelectPC的数据也要清空,同样在部门的orgSelectPC的onUpdateValue事件操作
控制orgSelectPC只显示什么类型的组织数据可以通过includeOrgKind属性控制
部门orgSelectPC的定义如下:
<div class="x-gridSelect" component="$UI/system/components/justep/org/orgSelectPC" xid="orgSelectPC1" bind-ref='$model.data2.ref("fDeptID")' bind-labelRef='$model.data2.ref("fDept")' onUpdateValue="orgSelectPC1UpdateValue" multiselect="false" includeOrgKind="ogn,dpt,pos"> <div component="$UI/system/components/justep/data/bizData" autoLoad="false" xid="bizData3" limit="-1"> <treeOption xid="default14" delayLoad="false"/> </div> <option xid="option8" value="SA_OPOrg" label="sName"> <columns xid="columns3"> <column name="sName" xid="column8"/> </columns> </option> </div>
Model.prototype.orgSelectPC1UpdateValue = function(event){ var data = this.comp("data2"); var deptID = data.getValue("fDeptID"); data.setValue("fPsmID",""); data.setValue("fPsm", ""); this.comp('bizData4').setFilter('person_filter', "SA_OPOrg.sParent='" + deptID + "'"); this.isReload = true; };
人员orgSelectPC的定义如下:
<div class="x-gridSelect" component="$UI/system/components/justep/org/orgSelectPC" xid="orgSelectPC2" bind-ref='$model.data2.ref("fPsmID")' bind-labelRef='$model.data2.ref("fPsm")' onShowOption="orgSelectPC2ShowOption" includeOrgKind="psm"> <div component="$UI/system/components/justep/data/bizData" autoLoad="false" xid="bizData4"> <treeOption xid="default15" rootFilter="1=1"/> </div> <option xid="option7" value="SA_OPOrg" label="sName"> <columns xid="columns2"> <column name="sName" xid="column9"/> </columns> </option> </div>
Model.prototype.orgSelectPC2ShowOption = function(event){ if (this.isReload) { this.comp('bizData4').refreshData(); this.isReload = false; } };
js中用的是this.isReload是在model中定义的实例变量
var Model = function() { this.callParent(); var isReload = false; };
评一波