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); });
相关推荐
2. **使用CheckboxSelectionModel**:这是另一种实现复选框选择的方式,通过实例化`Ext.grid.CheckboxSelectionModel`并将其添加到表格配置的`sm`属性中。这种模式支持多选,并且可以轻松地获取所有被选中的行记录。...
4.7.4. 自定义验证规则 4.7.5. 算不上校验的NumberField 4.7.6. 使用后台返回的校验信息 4.8. 关于表单内部控件的布局问题 4.8.1. 什么都不做,默认的平铺布局 4.8.2. 分裂,分列 4.8.3. fieldset是个神奇的东西 ...
"Ext Form GridPanel"是Ext JS库中的一个重要组件,它结合了表格(Grid)和表单(Form)的功能,提供了一种强大而灵活的方式来显示和编辑数据。在Web应用程序开发中,这种组件常用于数据录入和展示,尤其适用于处理...
4.7.5. 算不上校验的NumberField 4.8. 关于表单内部控件的布局问题 4.8.1. 什么都不做,默认的平铺布局 4.8.2. 分裂,分列 4.8.2.1. 分裂,分列。1.x 4.8.2.2. 分裂,分列。2.0 4.8.3. fieldset是个神奇的东西 4.8.4...
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。 表示层 ...
本文将深入探讨如何使用这两种技术实现Grid的增删改查功能,帮助新手理解ExtJS4与Struts2.1的交互机制。 首先,我们来看ExtJS4中的Grid组件。Grid是ExtJS中用于展示和管理数据的一种视图,它提供了一种灵活且可定制...
1. **ExtJS组件使用**:ExtJS提供了丰富的UI组件,如Grid、Form、Window等。在实现Excel导入时,我们需要创建一个窗口(Window)组件,包含一个文件上传控件(FileField)。用户可以通过这个控件选择本地的Excel文件...
10. **事件监听(Event Handling)**:监听Grid和表单的事件,如`itemdblclick`(双击行编辑),`beforeedit`(编辑前校验),`validateedit`(编辑验证),`beforesubmit`(提交前处理)等,以控制用户操作流程。...
3. 实现表单界面,并对表单字段进行数据校验; 4. 通过按钮等控件触发新增、修改和删除操作; 5. 实现与后端服务的数据交互逻辑,包括发送HTTP请求和处理响应; 6. 对GridPanel中的数据存储进行相应的增加、更新和...
**Ext.grid.PropertyGrid** - **描述**: 属性表格,用于显示对象的属性及其值。 - **用途**: 查看和编辑对象的属性,如设备参数、用户设置等。 **Ext.Editor** - **描述**: 编辑器组件,用于编辑各种类型的数据。 -...
1. **Ajax通信**:ExtJS 使用Ajax进行异步请求,通过Ext.Ajax对象或者直接使用Action Components(如FormPanel)来发送GET或POST请求到服务器。这些请求可以包含数据,并接收服务器返回的数据,更新UI。 2. **JSON...
表格Grid部分介绍了ExtJS的网格组件Grid的创建、配置和数据绑定方法,Grid组件对于处理和展示数据集非常有用。 TreePanel部分探讨了树状结构组件的使用方法,适用于创建层次化数据展示和导航。 表单Form部分讲解了...
EXTJS还提供了一款灵活的时间控件,允许用户自定义时间格式,并进行合法性校验。 要开始EXTJS的学习,首先需要下载EXTJS发布包,其中包含必要的JS类库和CSS样式库。在实际部署时,EXTJS的文件引用通常是相对路径,...