easyui的datagrid动态列
2015-06-12 16:16
471 查看
虽说easyui有点丑,但功能算是不错的。
我在工作中遇到了这样一个问题,先说下需求:
1.系统中可以动态维护表,就是对表可以进行增删改的操作
2.上述的这些表都对应有唯一的id存在一张表中,姑且叫做data_table吧
3.每张表的字段都动态可维护的
4.这些表的字段与它们所在的表一样都有一个唯一的id存在一张表中,目前命名为data_table_colmn
5.点开一个页面,这个页面分左右结构,左边是一棵树,右边是一个列表,点击树的不同节点,会刷新列表显示这个节点所对应的表的所有数据。
难点:
1.我使用的框架是ssh整合的,前台展示使用了easyui。
2.之前做的都是表结构不会改变的,所以它们本都应该有一个实体类用于hibernate使用,而现在本不到了。因为我们没有做到在前端页面更改数据库表,就将实体类修改一遍,这样根本不现实。
3.在datagrid中怎么显示呢?
我的解决方法是:
1.原来hibeinate使用实体类,然后把实体放入List传给datagrid,再把List放入封装好的DataGrid对象中,而现在使用sql来进行增删改,中间使用JSONObject对象,然后将JSONObject对象放入List,再把List放入封装好的DataGrid对象中。
2.原来datagrid中需要传入的数据仅仅是那个数组而已,如何拼接数组就仁者见仁,智者见智了。
就这样,问题解决了。
总结:这种简单的东西做起来都感觉吃力,其实就是积累和理解的不够罢了。尤其是这回datagrid的动态列的问题,实际上就是我理解的不够而已。只要理解了需要传入的仅仅是个数组,那么,就可以很快完成了。
我在工作中遇到了这样一个问题,先说下需求:
1.系统中可以动态维护表,就是对表可以进行增删改的操作
2.上述的这些表都对应有唯一的id存在一张表中,姑且叫做data_table吧
3.每张表的字段都动态可维护的
4.这些表的字段与它们所在的表一样都有一个唯一的id存在一张表中,目前命名为data_table_colmn
5.点开一个页面,这个页面分左右结构,左边是一棵树,右边是一个列表,点击树的不同节点,会刷新列表显示这个节点所对应的表的所有数据。
难点:
1.我使用的框架是ssh整合的,前台展示使用了easyui。
2.之前做的都是表结构不会改变的,所以它们本都应该有一个实体类用于hibernate使用,而现在本不到了。因为我们没有做到在前端页面更改数据库表,就将实体类修改一遍,这样根本不现实。
3.在datagrid中怎么显示呢?
我的解决方法是:
1.原来hibeinate使用实体类,然后把实体放入List传给datagrid,再把List放入封装好的DataGrid对象中,而现在使用sql来进行增删改,中间使用JSONObject对象,然后将JSONObject对象放入List,再把List放入封装好的DataGrid对象中。
2.原来datagrid中需要传入的数据仅仅是那个数组而已,如何拼接数组就仁者见仁,智者见智了。
就这样,问题解决了。
总结:这种简单的东西做起来都感觉吃力,其实就是积累和理解的不够罢了。尤其是这回datagrid的动态列的问题,实际上就是我理解的不够而已。只要理解了需要传入的仅仅是个数组,那么,就可以很快完成了。
$.ajax({ url : 'data_table_columnAction!sendData.action?table_id='+tableID, success : function (data){ data=$.parseJSON(data); c_c_l=data.column_code_list; c_n_l=data.column_name_list; t_n=data.table_code; var col=[]; var fcol=[]; for(var i=0;i<c_c_l.length;i++){ if(c_n_l[i]=='正文'){ col[i]={title : c_n_l[i] ,field : c_c_l[i],width:150,formatter:function(value){return dagong.suolve(value,50)}}; }else if(c_n_l[i]=='借款详情'){ col[i]={title : c_n_l[i] ,field : c_c_l[i],width:150,formatter:function(value){return dagong.suolve(value,50)}}; }else{ col[i]={title : c_n_l[i] ,field : c_c_l[i],width : 150}; } } share.data('node', col); datagrid = $('#datagrid').datagrid({ url : 'data_table_columnAction!datagrid_resultShow.action?column_code_list='+c_c_l+'&table_code='+t_n, title : '', iconCls : 'icon-save', pagination : true, pageSize : 10, pageList : [ 10, 20, 30, 40 ], fit : true, fitColumns : false, nowrap : false, border : false, striped:true, selectOnCheck : true, columns : [col], onLoadSuccess : function(){ } }); } });
相关文章推荐
- Android Phone Pad UI设计主流分辨率
- 【uiautomator】输入中文(输入法安装+测试代码)
- 基于Java Bean Validation对Request参数进行校验的设计思路
- ngui屏幕自适应
- LeetCode63:Unique Paths II
- easyUI 鼠标悬停显示内容
- 20大UI设计原则
- GRE Issue写作范文Topic123
- db file sequential read 详解
- Uva - 540 - Team Queue
- Uva - 540 - Team Queue
- Burp Suite使用介绍(一)
- 2014年10月12日GRE考试issue作文题及参考范文
- Android多线程编程详解,关于Handler ,Looper , Message , MessageQueue
- IOS代码实现常用控件UIButton、UISlider、UISwitch、UISegmentedControl
- 新GRE issue写作范文实例
- SQLServer 2005 和自增长主键identity说再见——NEWSEQUENTIALID()
- iOS UICollectionView的使用(用代码创建UI)
- 少之又少的新GRE issue写作范文
- iOS中UITextField用法