一个设计项调用另一个设计项的(列表界面支持多选)
Posted 叫我谣叔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个设计项调用另一个设计项的(列表界面支持多选)相关的知识,希望对你有一定的参考价值。
//详细说明
例如:【方案管理】设计项上有一个【检查】按钮,点击检查按钮时,调出【用户管理】设计项的列表界面 ,选中调出的【用户管理】设计项列表上的多条记录,
关闭【用户管理】列表时,将选中的记录中的username赋值给【方案管理】设计项所对应的实体中的JianChaRenYuan字段中。
前端sencha.cmd【方案管理】设计项列表上【检查】按钮中的js代码
1 function(button, record, e) 2 { 3 debugger; // 中断调试指令,可以手动删除它 4 5 var me = this; // this 为列表视图控制器 6 var viewModel = this.getViewModel(); // 获取视图模型 7 var grid = this.getView(); // 获取到列表视图 8 var records = grid.getSelectionModel().getSelection(); // 获取到选中的记录数组 9 var record=records[0]; // 如果是单选模式则获取到第1条选中的行记录 10 11 12 if (record.get(‘ShiFouGuiDang‘)==true) 13 { 14 Ext.Msg.alert(‘信息框‘,+record.get(‘FangAnMingChen‘)+‘方案已归档不能选择检查人!‘); 15 } 16 if(record.get(‘XiaFaShiJian‘)!=""||null) 17 { 18 Ext.Msg.alert(‘信息框‘,+record.get(‘FangAnMingChen‘)+‘方案已下发不能选择检查人!‘); 19 } 20 if(record.get(‘ShiFouGuiDang‘)==false&&record.get(‘XiaFaShiJian‘)==""||null) 21 { 22 23 var win = Ext.create(‘Ext.window.Window‘, { 24 title: ‘选择‘+record.get(‘FangAnGuanLi‘)+‘的检查人员‘, 25 height: ‘60%‘, 26 width: ‘60%‘, 27 closable: true, 28 hideHeaders: true, 29 layout: ‘fit‘, 30 items: { 31 xtype: util.getCodeGenerate1ClassName(‘用户管理‘,‘list‘), 32 title: null, 33 JianGuanRenYuanID: record.get(‘JianGuanRenYuanID‘), 34 store:Ext.create(util.getCodeGenerate1ClassName(‘用户管理‘,‘Store‘),{ 35 httpGetRequestExParams: { // 如使用本行代码只要求后台的方法中有参数QueryCondition(默认生成的List()方法中就包含有该参数)即可接收多字段查询条件。建议使用本行代码 36 QueryCondition: { 37 JianGuanRenYuanID:{ 38 Value1: record.get(‘JianGuanRenYuanID‘), 39 CompareMode: ‘等于‘ // 查询时的比较方式 40 } 41 } 42 } 43 }) 44 }, 45 listeners:{ 46 close:function(ct,eOpts) 47 { 48 var records = ct.down(‘grid‘).getSelection(); 49 if(record.length==0) 50 return; 51 else 52 { 53 var jianGuanRenYuanIDs = []; 54 var jianGuanRenYuans =[]; 55 56 Ext.Array.each(records, function(record){ 57 jianGuanRenYuanIDs.push(record.get(‘ID‘)); 58 jianGuanRenYuans.push(record.get(‘UserName‘)); 59 60 }); 61 var params = { 62 JianGuanRenYuans: jianGuanRenYuans, 63 JianGuanRenYuanIDs:jianGuanRenYuanIDs, 64 FangAnGuanLiID:record.get("ID") 65 }; 66 ajax.get(‘/Pc/FangAnZhiXingPublic/XuanZeDuoGeJianGuanRenYuan‘, params).then(function (response, opts) { 67 68 if (response.Success) { 69 grid.getStore().reload(); // 弹出信息框,显示后台返回的成功信息。做为最佳实践,推荐显示后台返回的信息(1、防伪造;2、前端应只做展示少牵涉业务逻辑。) 70 } else { 71 Ext.Msg.alert(‘信息框‘,response.Errors.join(‘请求没有成功‘)); // 弹出信息框,显示后台返回的错误或失败信息 72 } 73 74 }); 75 } 76 } 77 } 78 }); 79 80 grid.add(win); 81 win.showBy(grid); 82 } 83 }
后端VS.Controller.cs文件中的方法为
1 public HyResultBase XuanZeDuoGeJianGuanRenYuan(string[] JianGuanRenYuans, string[] JianGuanRenYuanIDs, Guid FangAnGuanLiID) 2 { 3 4 var r = new HyResultBase(); 5 var fangAnGuanLi = _ioc.Query<FangAnGuanLi>() 6 .Where(e => e.ID == FangAnGuanLiID) 7 .FirstOrDefault(); 8 var s = ""; 9 var q = ""; 10 for (var i = 0; i < JianGuanRenYuanIDs.Length; i++) 11 { 12 q += JianGuanRenYuanIDs[i] + "、"; 13 } 14 for (var j = 0; j < JianGuanRenYuans.Length; j++) 15 { 16 s += JianGuanRenYuans[j] + "、"; 17 } 18 fangAnGuanLi.JianGuanRenYuanID = q; 19 fangAnGuanLi.JianGuanRenYuan = s; 20 fangAnGuanLi.Update().SaveToDB(); 21 r.Success = true; 22 return r; 23 24 }
以上是关于一个设计项调用另一个设计项的(列表界面支持多选)的主要内容,如果未能解决你的问题,请参考以下文章
在已转出档案设计项列(用的实体为a)表界面上有一个转出详情按钮,点击转出详情按钮时调出档案转出记录设计项的编辑界面(用的实体为b),筛选条件为DangAnID=ID的代码如下
Tutorial Master 2丨设计引导项的小技巧,提高你的开发效率