如何设置iMatrix平台中列表标签(gridjqGrid)实现动态列表

   

动态列表

以demo中“订单(动态列表)”为例说明:此列表显示的信息包括订单主表的信息和订单子表的信息,其中主表信息是编号为ES_ORDER对应列表的信息,子表的信息是从后台动态取得:

1.列表标签中需增加属性dynamicColumn=””;

<grid:jqGrid gridId="dynamicOrder"url="${ctx}/order/dynamic-order.htm" code="ES_ORDER"pageName="dynamicPage"dynamicColumn="${dynamicColumn}"></grid:jqGrid>

在action中定义变量与其对应:

private List<DynamicColumnDefinition> dynamicColumn=newArrayList<DynamicColumnDefinition>();

2.进入列表页面时后台action调用方法packagingDynamicColumn(),将动态列表追加的表头信息添加进去,追加子表的表头信息是子表中的某个字段,如下方法:

private void packagingDynamicColumn()throws Exception {

//取得子表字段产品名称,以此字段作为表头

                   List<Object>productNames=orderManager.getOrderItem();

                   for(inti=0;i<productNames.size();i++){

//"productName"+i是动态列表中每一列的的id

DynamicColumnDefinitiondynamicColumnDefinition=new DynamicColumnDefinition(productNames.get(i)

.toString(),"productName"+i);

//是否可编辑

                            dynamicColumnDefinition.setEditable(true);

                            //设置数据类型

                            dynamicColumnDefinition.setType(DataType.INTEGER);

           //设置编辑规则

                            dynamicColumnDefinition.setEditRules("required:true");

                            //设置是否合计

                            dynamicColumnDefinition.setIsTotal(true);                     

                            //是否导出true表示导出,false表示不导出,默认为true

                            dynamicColumnDefinition.setExportable(false);

                           

                            //是否显示true表示显示,false表示不显示,默认为true

                            dynamicColumnDefinition.setVisible(false);

                            //列宽

                            dynamicColumnDefinition.setColWidth("100");

                            //编辑时为下拉选

                            dynamicColumnDefinition.setEdittype(EditControlType.SELECT);

                            dynamicColumnDefinition.setEditoptions("1:'启用',2:'禁用'");

                            ///编辑时为下拉选时的chang事件

                       dynamicColumnDefinition.setEventType(EventType.ONCHANGE);

                            //编辑时给input框增加点击事件

                       dynamicColumnDefinition.setEventType(EventType.ONCLICK);

                   //编辑时增加默认值CURRENT_USER_NAME表示当前用户名、CURRENT_LOGIN_NAME表示当前登录名、CURRENT_TIME表示当前时间(yyyy-MM-dd hh:mm:ss)、CURRENT_DATE表示日期(yyyy-MM-dd)dynamicColumnDefinition.setDefaultValue(DefaultValue.CURRENT_USER_NAME);dynamicColumnDefinition.setDefaultValue(DefaultValue.CURRENT_LOGIN_NAME);dynamicColumnDefinition.setDefaultValue(DefaultValue.CURRENT_TIME);

dynamicColumnDefinition.setDefaultValue(DefaultValue.CURRENT_DATE);

                            dynamicColumn.add(dynamicColumnDefinition);

                   }

         }

上述方法中dynamicColumnDefinition的属性根据需求设定,很多是不需要设定的;

1.       标签中取列表数据在后台需调用下面方法:

@Action("dynamic-order")

         publicString getDynamicOrder() throws Exception {

                   dynamicPage=orderManager.search(dynamicPage);

this.renderText(PageUtils.dynamicPageToJson(dynamicPage,newDynamicColumnValues(){

                            publicvoid addValuesTo(List<Map<String, Object>> result) {

Map<String,DynamicColumnDefinition>dynamicColumnName=mmsUtil.getDynamicColumnName();

                                     //取动态列表的列的id

                                     Set<String>productNames=dynamicColumnName.keySet();

                                     for(Map<String,Object> map:result){

                                               LongorderId=Long.valueOf(map.get("id").toString());

                                               for(StringproductName:productNames){

DynamicColumnDefinitionproductValue=dynamicColumnName.get(productName);

                                               //在子表的字段中设置值,这里取的是产品数量

map.put(productName.toString(),orderManager.getProductAmount(productValue.getColName(),orderId));

                                               }

                                     }

                                    

                            }

                   }));

                   returnnull;

         }

说明:page转json需要调dynamicPageToJson;

                    result是主表取出来的每一条数据。

 

    关于标签更详细的资料可以到官网下载:http://www.imatrix.net.cn

    如有使用iMatrix平台问题请登录iMatrix平台论坛咨询:

   http://bbs.imatrix.net.cn/forum.php?mod=forumdisplay&fid=37

    或者加入QQ群307599527

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值