首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Ext4 Grid规约校验

2013-11-29 
Ext4 Grid规则校验Ext4 的排班规则列表, 需要在选中一个规则时, 判断是否与已经选中的规则存在冲突。在Ext

Ext4 Grid规则校验

Ext4 的排班规则列表, 需要在选中一个规则时, 判断是否与已经选中的规则存在冲突。

在Ext 的 ruleModel 中增加字段 ruleMutexs, 接收从后台传来的互斥规则代码列表。因为一个规则的互斥规则有可能多个,

有些担心 Ext.data.Model 中的字段是否能接收数组类型。试试再说。

?

?

//排班规则Ext.define('ruleModel',{extend:'Ext.data.Model',fields:[{name:'ruleCode',type:'string'},{name:'ruleName',type:'string'},{name:'ruleTypeName',type:'string'},{name:'ruleSelected'},{name:'ruleMutexs'}]});

?

后台, 在 ScheduleRuleDto? 中增加对应的数据字段

//互斥规则public String[] ruleMutexs;public String[] getRuleMutexs() {return ruleMutexs;}public void setRuleMutexs(String[] ruleMutexs) {this.ruleMutexs = ruleMutexs;}

跑起, 页面中打印 slct[i].data.ruleMutexs.length 得到 1 , 说明数组成功得到。

?

在选中事件中增加判断, 如果存在冲突, 那么取消选中。

?

airportGrid.on('select',function( rm, record, index, eOpts ){if(!conflictChk){return;}var slct = airportGrid.getSelectionModel().getSelection();for(var i=0;i<slct.length; i++){if(slct[i].data.ruleCode != record.data.ruleCode){//排除自己var mutexs = slct[i].data.ruleMutexs;for(var j=0;j<mutexs.length;j++){//alert(mutexs[j]);if(mutexs[j] == record.data.ruleCode){alert("该规则与已选的规则:" + slct[i].data.ruleName + "冲突!");airportGrid.getSelectionModel().deselect(record,true,false);}}}}//判断当前选中的规则是否与已经选中的规则存在冲突//alert(record.data.ruleCode);});

?

?

?

热点排行