grid记录集相关

📅 2026/6/30 4:54:37
grid记录集相关
这里写自定义目录标题1、新增一行2、勾选所有行3、取消勾选所有行4、获取勾选信息5、回写数据6、刷新数据7、取消分页8、自定义分页9、单列隐藏10、单列固定11、首行冻结12、固定行、列不可编辑13、重写默认删除方法14、自定义弹窗选择回填列15、单击/双击回填行数据至父页面16、重写新增复制行功能取消字段17、修改前校验行数据18、记录集颜色动态显示1、新增一行resultGrid.dataSource.insert();2、勾选所有行resultGrid.checkAllRows();3、取消勾选所有行resultGrid.unCheckAllRows();4、获取勾选信息var checkRowsresultGrid.getCheckedRows();5、回写数据resultGrid.setCellValue(0,boqCoding,checkRows[i].boqCoding);functioniframeSupplier(e){resultGrid.dataSource.insert();resultGrid.setCellValue(0,supplierId,e[0].get(suppId));// 如果是列中弹出页面回显可以用editorModelresultGrid.setCellValue(editorModel,supplierId,e[0].get(suppId));}6、刷新数据IPLAT.alert({message:保存成功,okFn:function(e){// 新增成功后重新刷一下界面以显示出标签页。resultGrid.dataSource.page(1);window.location.reload();location.reload();},title:保存});7、取消分页result:{pageable:false,}8、自定义分页grid展示条目数量 IPLATUI.EFGrid{result:{pageable:{pageSize:100,// DataSource设置会覆盖此处设置pageSizes:[10,20,50,100,200]// 分页配置},// autoBind: false,//影响页面默认查询条数注释掉就好},}9、单列隐藏resultGrid.hideColumn(fileDone);10、单列固定// 放在js里固定列滑动后面列locked:true// 例IPLATUI.EFGrid{result:{columns:[{field:contractNo,title:合同号,template:a hrefjavascript:void(0)onclickshowDetail(\#:rowguid#\,\#:contractBigType#\);return false;#:contractNo#/a,width:100,locked:true}]}}11、首行冻结1、首行冻结固定// 放到jsp里 isFloattrueEF:EFGrid blockIdresultautoDrawfalseautoBindfalserowNotrueisFloattrue12、固定行、列不可编辑// 固定字段,固定值不可修改beforeEdit:function(e){var enamee.field;//选中的列名var nodeCodee.model.nodeCode;//该列的值if((enameactEndTime||enameactStartTime)(nodeCode40||nodeCode60||nodeCode70)){// 判断单元格 field 禁止编辑e.preventDefault();//禁止编辑行内信息}// e.model.isNew() 判断当前行是不是新增的行// resultGrid.setCellValue(editorModel, supplierId, e[0].get(suppId));}13、重写默认删除方法onDelete:function(e){if(!UIValidate(e.sender)){e.preventDefault();// 不向后台保存}var dataresultGrid.getCheckedRows();if(data.length1){NotificationUtil(请勾选至少一行数据! ,warning);return;}IPLAT.progress($(#BUCM0013),true);IPLAT.submitNode($(#BUCM0013),BUCM0013,delete,{onSuccess:function(eiInfo){IPLAT.progress($(#BUCM0013),false);var msgeiInfo.getMsg();var statuseiInfo.getStatus();if(status!-1){resultGrid.setEiInfo(eiInfo);IPLAT.NotificationUtil(msg,success);}else{IPLAT.NotificationUtil(msg,error);}},onFail:function(eiInfo){IPLAT.progress($(#BUCM0013),false);// 发生异常NotificationUtil(eiInfo,error);}});},14、自定义弹窗选择回填列1.jsp文件EF:EFPopupColumn enameequityDeptNamecname产权单位名称width180requiredtruecontainerIdinvestorName_popup_iframetextFieldiframeresizabletruepopupTitle所属单位选择popupWidth650popupHeight400/div idinvestorName_popup_iframestyledisplay: nonediv classrowstyleheight: 90%iframe idinvestorName_iframetitleclassk-content-framesrc/iframe/divdiv classk-window-save k-popup-saveEF:EFButton enameinvestorName_popup_iframe_fillbackcname确定classi-btn-widestylemargin-right: 40px;/EF:EFButton/div/div2.js文件弹出 grid展示条目数量 IPLATUI.EFGrid{result:{pageable:{pageSize:100,// DataSource设置会覆盖此处设置pageSizes:[10,20,50,100,200]// 分页配置},// autoBind: false,//影响页面默认查询条数注释掉就好exportGrid:false,columns:[{field:equityDeptName,title:产权单位,width:180,editor:function(container,params){var gridcontainer.closest(.k-grid).data(kendoGrid),columngrid.columns[grid.cellIndex(container)],queryInfo,attributescolumn.attributes||{};var input$(span classk-widget k-dropdown i-popup-input k-headerspan classk-dropdown-wrap i-state-readonlyinput typetextreadonlyreadonlynameparams.field idparams.field classpopupColumn value (attributes.requiredtrue?required:) span classk-selectspan idicon_params.field classi-icon i-popup-grid/span/span/span/span);input.appendTo(container);$(#icon_params.field).mousedown(function(){if(container.hasClass(fake-edit)){container.removeClass(fake-edit);}else{editorModelparams.model;// iframe的src赋值$(#investorName_iframe).attr(src,IPLATUI.CONTEXT_PATH/web/JA00ORG);IPLAT.Popup.popupContainer({containerId:investorName_popup_iframe,textElement:$(container),width:650,height:400,title:所属单位选择});}});}}]},}3.回显方法——关闭树// 关闭组织机构树iframe时候回填数据$(#investorName_popup_iframe_fillback).on(click,function(e){// 获取弹窗所在的框架iframevar a$(#investorName_iframe)[0];// 获取框架中弹窗的jQuery对象var ja.contentWindow.$;// 获取弹窗中选中的值var orgTreej(#categoryTree).data(kendoTreeView);var selNodeorgTree.select();var modelorgTree.dataItem(selNode);if(model){resultGrid.setCellValue(editorModel,equityDeptCode,model[ename]);//单位组织代码resultGrid.setCellValue(editorModel,equityDeptName,model[text]);//单位组织名称var windowFrame$(#investorName_popup_iframe).data(kendoWindow);windowFrame.close();}else{WindowUtil({title:信息,content:div classkendo-del-message没有选中数据/div});}});4.回显方法——关闭列表// 关闭项目号弹出层iframe时候回填数据$(#project_popup_iframe_fillback).on(click,function(e){// 获取弹窗所在的框架iframevar a$(#project_iframe)[0];// 获取框架中弹窗的jQuery对象var ja.contentWindow.$;var dataGridj(#ef_grid_result).data(kendoGrid);var rowdataGrid.getCheckedRows();if(row.length0){iframeCostCenter(row);var windowFrame$(#costCenter_popup_iframe).data(kendoWindow);windowFrame.close();}else{WindowUtil({title:信息,content:div classkendo-del-message没有选中数据/div});}});5.回显数据 functioniframeCostCenter(e){resultGrid.setCellValue(editorModel,costCenter,e[0].get(costCenter));//成本中心代码resultGrid.setCellValue(editorModel,costCenterName,e[0].get(costCenterName));//成本中心描述var windowFrame$(#costCenter_popup_iframe).data(kendoWindow);windowFrame.close();}15、单击/双击回填行数据至父页面//单击一行数据自动勾选onCellClick:function(e){resultGrid.setCheckedRows(e.row);},//双击一行数据自动回填 (只允许勾选一行)onRowDblClick:function(e){// resultGrid.unCheckAllRows();// resultGrid.setCheckedRows(e.row);// 调用父页面中定义的方法try{if(typeof(eval(parent.iframePurchase))function){parent.iframePurchase(resultGrid.getRows(e.row));}}catch(e){//alert(not function);}}16、重写新增复制行功能取消字段新增复制一行 beforeAdd:function(e){//根据条件新增行var listresultGrid.getCheckedRows();resultGrid.addRows(list);// 复制数据var rowguidlist[0].rowguid;// 获取数据if(list.length0){//阻止默认触发行为e.preventDefault();for(var i0;ilist.length;i){resultGrid.setCellValue(i,rowguid,);resultGrid.setCheckedRows(i);}}else{//阻止默认触发行为// e.preventDefault();}},17、修改前校验行数据/** * 前台校验校验业务创建人与当前登录人是否一致。 */onSave:function(e){if(!UIValidate(e.sender)){e.preventDefault();// 不向后台保存}},functionUIValidate(grid){var resulttrue;var errorMsg;var rowsgrid.getCheckedRows();if(rowsnull||rows){errorMsg没有选中数据,;}var loginNameIPLATUI.USER_ID;$.each(rows,function(index,item){var rowguiditem.get(rowguid);var recCreatoritem.get(recCreator);var recCreatorNameitem.get(recCreatorName);if(rowguid!loginName!recCreator){errorMsg非业务创建人“recCreatorName”不能进行操作,;}});if(errorMsg!){resultfalse;var errserrorMsg.split(,);NotificationUtil({msg:errs.join(br)});}returnresult;}18、记录集颜色动态显示$(#detail-0-subtrahendRate3).css(background-color,pink);下拉选择方法里写一个改完就变色 默认刷新完成方法里写一个渲染一下保存好的就有颜色 Grid设置背景颜色高亮显示afterEdit同级//绑定数据源后根据条件显示红色字体dataBound:function(e){// 根据price大小定制每行背景颜色var itemse.sender.getDataItems(),item;for(var i0;iitems.length;i){itemitems[i]||{};var approveStatuse.sender.dataItems()[i][approveStatus];//材料消耗量if(approveStatus10){//退回// e.sender 表示此Grid的实例addClass2Tr(e.sender,item,red);}elseif(approveStatus20){//已确认addClass2Tr(e.sender,item,green);}}},//给Grid中model所渲染的行添加ClassfunctionaddClass2Tr(grid,model,className){var trListgrid.element.find(tr[data-uidmodel.uid]);if(trList.length0className){trList.addClass(className);}};第二种方法 dataBound:function(e){var gride.sender;var trsgrid.table.find(tr);$.each(trs,function(i,tr){var colorFlaggrid.getDataItems()[i].get(colorFlag);if(colorFlag1){tr.style.background#ffbfbf;}});},