如何设置iMatrix平台中列表标签(gridjqGrid)实现动态列表
2014-05-08 14:21
381 查看
动态列表
以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
相关文章推荐
- 介绍一款信息管理系统的开源框架---jeecg
- 专家解读:开源软件项目是否会被限制出口?
- 专家解读:开源软件项目是否会被限制出口?
- fuse-dfs的设定手册
- Centos下***(pptpd)的部署
- 表格标签table深入了解
- WEB标准网页布局中尽量不要使用的HTML标签
- web标准知识――用途相似的标签
- h1标签的使用技巧
- HTML代码中标签的全部属性 中文注释说明
- css样式标签和js语法属性区别
- 国外比较好的几个的Php开源建站平台小结
- 开源SNS系统-ThinkSNS
- 关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
- 解决JSTL foEach标签 刷新报错的方法
- js过滤HTML标签以及空格的思路及代码
- Java中替换HTML标签的方法代码
- html label标签的使用教程
- 3款值得推荐的微信开发开源框架