问题描述一:
首先根据输入的sql语句获得相关的列名称返回给前台,然后在datagrid中动态加载列,接着根据查询条件(包括sql语句)获取相关的记录返回给前台用于填充datagrid。从而实现类似oracle web版的sql查询。
相关代码:
- function sqlSearch(){
- var sqlStatement = $.trim($("#sqlStatementId").val());
-
if(sqlStatement == null || sqlStatement == ""){
- return false;
- }
- var type = "POST";
- var url = "sqlExecCtrl.action?cmd=getColumnNameList";
-
var param = "sqlStatement=" + $("#sqlStatementId").val();
- ajaxExtend(type,url,param,function(data){
- var options = $("#sqlResultDisplay").datagrid("options"); //取出当前datagrid的配置
- options.columns = eval(data.columns); //添加服务器端返回的columns配置信息
- options.queryParams = getQueryParams("sqlConditionId"); //添加查询参数
- $("#sqlResultDisplay").datagrid(options) ;
- $("#sqlResultDisplay").datagrid("load") ; //获取当前页信息
- });
- }
- /**
- * 根据指定条件请求系统资源
- *1、 异步
- *2、返回格式为json
- *
- * @param type //请求方式
- * @param url //请求url
- * @param param //请求参数
- * @param callback //回调函数
- */
- function ajaxExtend(type,url,param,callback){
- ajaxExtendBase(type,url,param,true,callback);
- }
- /**
- * ajax请求基础方法
- * @param type
- * @param url
- * @param param
- * @param async
- * @param callback
- */
- function ajaxExtendBase(type,url,param,async,callback){
- $.ajax({
- type: type,
- url: url,
- data:param,
- async : async,
- dataType:"json",
- success:function(result){
- if(result.success){ //只有sql正确能获取相关列名后才再请求列表资源
- callback(result.data); //获取当前页信息
- }
- else{
- dealWithException(result.exception);
- }
- }
- });
- }
- /**
- * 将指定form参数转换为json对象
- */
- function getQueryParams(conditionFormId){
- var searchCondition = getJqueryObjById(conditionFormId).serialize();
- var obj = {};
- var pairs = searchCondition.split('&');
- var name,value;
- $.each(pairs, function(i,pair) {
- pair = pair.split('=');
- name = decodeURIComponent(pair[0]);
- value = decodeURIComponent(pair[1]);
- obj[name] = !obj[name] ? value :[].concat(obj[name]).concat(value); //若有多个同名称的参数,则拼接
- });
- return obj;
- }
后台返回的json格式如下
- {"total":3,
-
"columns":[[{"field":"ROLE_ID","title":"ROLE_ID","width":100,"resizable":true},
-
{"field":"NAME","title":"NAME","width":100,"resizable":true},
-
{"field":"CREATE_DATE","title":"CREATE_DATE","width":100,"resizable":true},
-
{"field":"DESCRIPTION","title":"DESCRIPTION","width":100,"resizable":true}]],
-
"rows":[{"NAME":"普通人员","DESCRIPTION":"只具有查看权限","CREATE_DATE":"2012-09-21 16:31:53.0","ROLE_ID":"7"},
-
{"NAME":"调度人员","DESCRIPTION":"开放全部功能,但无系统管理相关权限","CREATE_DATE":"2012-09-21 16:32:24.0","ROLE_ID":"8"},
- {"NAME":"超级管理员","DESCRIPTION":"具有所有权限","CREATE_DATE":"2012-09-17 20:23:19.0","ROLE_ID":"1"}]}
其中,"columns"对应sqlSearch方法的ajaxExtend(type,url,param,function(data){})回调函数中的data,"total"和"rows"为datagrid加载数据。
问题描述二:jquery easyui datagrid 列自适应窗口宽度
主要三种方式:
1. fitColumns: true,/*自动扩大或缩小列的尺寸以适应表格的宽度并且防止水平滚动*/
使之保持与父类宽度相同
2.设置列宽为百分比
field:'opt',title:'操作',width:$(this).width() * 0.2,align:'center',
rowspan:2,
field:'opt',title:'操作',width:$(this).width() * 0.2,align:'center', rowspan:2,
将width的值设为百分比,这里是20%,诸位可以根据自己的实际情况做适当调整。
3. 监听浏览器宽度变化,调整datagrid尺寸和布局
$(window).resize(function(){
$('#tt').datagrid('resize');
});
后台代码实现关键代码:
- <select id="getTableData" resultClass="java.util.HashMap" parameterClass="java.lang.String">
-
<![CDATA[
- SELECT * FROM $tableName$
- ]]>
- </select>
- public Map<String, Object> getTableData(String tableName) {
- return this.getSqlMapClientTemplate().queryForMap("getTableData", tableName, "tableName");
- }
对应方法API
public java.util.Map queryForMap(java.lang.String id, java.lang.Object parameterObject, java.lang.String keyProp, java.lang.String valueProp)
- public void testGetTableData() {
- Map<String, Object> values1 = this.articleDao.getTableData("one");
- assertNotNull(values1);
- Map<String, Object> values2 = this.articleDao.getTableData("two");
- assertNotNull(values2);
- }
相关推荐
jQuery EasyUI 中文文档jQuery EasyUI 中文文档jQuery EasyUI 中文文档jQuery EasyUI 中文文档jQuery EasyUI 中文文档jQuery EasyUI 中文文档jQuery EasyUI 中文文档jQuery EasyUI 中文文档jQuery EasyUI 中文文档...
jquery EasyUI的API,方便使用easyui查看。。。。。。
jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut) Demo 扩展 jQuery EasyUI Datagrid 数据行鼠标悬停离开事件,源码奉献!!!
jqueryEasyUI 下载,及api下载 jqueryEasyUI 下载,及api下载
jquery easyui demo 网页下载下来打包了,还有datagrid简要说明
jquery easyui 帮助文档 非常好用的
jQuery EasyUI EasyUI 组件范例
jQuery EasyUI中文手册
jQuery EasyUI 1.4.3 API 中文 jQuery EasyUI 1.4.3 API jQuery EasyUI 1.4.3 API
jQuery EasyUI中文参考手册.chm
jquery easyui 中文api文档 jQuery EasyUI 1.2.4+API.chm jquery.easyui-1.2.6API.chm jquery.EasyUI-1.3.1 API_疯狂秀才.chm
jQuery EasyUI 1 4版本更新内容: Bug(修复) menu:修复在删除一个菜单项的时候该菜单无法正确自适应高度的问题; datagrid:修复在datagrid宽度太小的时候“fitColumns”方法无法正常工作的问题 Improvement...
资源名称:Jquery easyui 使用说明内容简介:Jquery easyui 使用说明 中文PDF版主要讲述的是Jquery easyui 使用说明;感兴趣的朋友可以过来看看。jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的...
jQuery EasyUI 1.5.1文档 jQuery EasyUI 1.5.1文档 jQuery EasyUI 1.5.1文档
jQuery EasyUI 1.5API 中文版文档 最新版jQuery easy ui
资源名称:Jquery easyui 1.2.4 中文API 资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
使用Jquery EasyUI制作的日历,单击input控件弹出日历选择日期,代码很简单,仅供参考
一个很不错的关于jQuery EasyUI入门学习的Demo。涉及界面的布局排版、数据的动态加载、窗口的自适应等方面。特别地,该实例通过对界面模块...注:例子中,所引用的均为最新的jQuery 1.8.0和jQuery EasyUI 1.3.2的版本。
ssm框架+jquery easyui案例
为了大家能够很好的学习jquery easyui