HandEnterpriseSolutions<动态列实现的几种方式归纳>作者:张家晟建档日期:上次更新:控制号:版本:1.0审批:ProjectManager拷贝号文档控制记录更改日期作者版本文档状态更改参考2014—01—231.0NoPreviousVersion审阅人姓名职位分发拷贝号姓名职位12341实现方式一//动态配置dsField和gridColumnfunctionaddColumn(res){vards3=$('execl_ds');vargrid=$('tmm_employee_scheduling」ist_grid'varresultrecords=res.result.record;varcolumns=[];varfields=ds3.fields,f=[];for(varqinfields){);if(q.substring(0,1)=='a'){ds3.removeField(q);f.push(q);}}grid.removeColumn(f);for(vart=0;t
2实现方式二属性名说明类型id绑定view-config中的唯一标识[placeHolde门中定义过的属性数据来源(moder-query):loopsource="/model/dynaiuiG_column">丈—节点名说明最大重复次数batch-config动态循环创建子节点OOcreate-config动态列配置区这种方式是通过aurora中已经圭寸装的标签来实现通过页面加载的时候就取得动态列所需要生成的列,所以比较适合用于固定的生成模式,不太适合用于要根据本页面所选定的一些参数就行生成的动态列3实现方式3BizDynamicColumnWrite.jsbizUtils.jsbizDynamicColumnForGrid.jscsrriFts4$cserLx.rs"!5{/Tequeac/81afitsatt>/rfifittLi/ftf/javascripe/blzD/na»icCo1ujukFerSi1id.js*T^p^=wceMc/j*vA3erlpxp,7sCSGXlpLXl[CDATJ&.[mnctioninn;□ri_arici_id,):gria,sei;Di/nareiccoluran^Mode((DOlDauasets?salarjr_Qfaery_resul匸一巾雾■・STiar^FlelO:11ItenjLld1*prcimptFielidi;*ittj厂二・.-siignFunciticin:'aligri3*t,1H;* frmcrtionc.LignS=t(z-esord)(if(reGcrd・gu£「亚乂_二yp="}—-10{3£&-){retnirn1zzgh&申;1cIm(return■left1;/*@前置条件:l.grid内需要一个lock=flase(这个为默认设置)的占位标签,其他非动态列设为lock否则会在刷新时被删除2.如果需要footerrenderer,在column标签内需要申明3.动态列信息的dataset应当设置为,fetchAII="true"4.如果需要在页面加载时就设置动态列,设置autoQuery=true,动态列的绘制是动态列信息dataset的load事件驱动的*/@描述:为grid添加相应的事件和方法控制动态列@参数列表:*@colDataSet:动态列数据集,根据此数据集的记录绘制grid的动态列部分*@shareField:对应shareField*@promptField:动态列数据集中描述字段,相当于column中的prompt***@可选条件:*@resizable:是否可以自动调整大小*@sortable:是否排序字段*@editor:返回一个编辑器给所有动态列*@renderer:动态列数据内容渲染函数*@dynamicFooterRenderer:grid脚渲染器,调用gird的footerrenderer* @align:动态列的数据文本位置**/这种方式比较时候用于所有生成的动态列都是数字类型或者文本类型的输入框,不适用于需要生成的动态列需要进行combox或者lov等选择方式的,需要用这种方式的请查看方式一。
这种方法效率高,实现简单,比第二种也多了自选条件的可能性。