功能:
类似oracle的web版本的sql查询。
实现方式:
首先根据输入的sql语句获得相关的列名称返回给前台,然后在datagrid中动态加载列,接着根据查询条件(包括sql语句)获取相关的记录返回给前台用于填充datagrid。从而实现类似oracle web版的sql查询。
前台主要js为:
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加载数据
效果图:
见附件
- 大小: 14.3 KB
分享到:
相关推荐
easyUI页面datagrid动态列和form字段动态添加;项目开发时用到的,废了不少事,大概总了一下,现在发出来共享给想我一样的要用到的菜鸟们,谢谢
本文的目标是通过一个具体的案例来展示如何使用JQuery EasyUI的datagrid组件来实现多表头和根据数据库动态生成列的需求。 #### 解决方案 ##### 1. 后端逻辑准备 为了实现前端表格能够根据数据库内容动态变化,...
在描述中提到的"easyui的datagrid生成合并行,合计计算价格",指的是如何使用EasyUI的DataGrid组件来实现表格数据的行合并以及总价的计算功能。以下是对这个知识点的详细解释: 1. EasyUI DataGrid组件: EasyUI的...
1. **扩展Datagrid功能**:可以通过扩展EasyUI Datagrid的默认功能来实现打印,这可能涉及到自定义事件监听器,当用户触发打印操作时,将当前视图的数据转换为适合打印的格式。 2. **CSS调整**:由于打印时浏览器...
在Easyui的1.3.3版本中,作者新增了tooltip组件,尽管样式看起来也...之前我写过一篇《扩展:datagrid鼠标经过提示单元格内容》那就是用纯编码生成的tip,更为丑陋,有了Easyui 1.3.3的tooltip,我们实现起来就很容易了
在IT领域,EasyUI Datagrid是一款基于jQuery的...通过以上步骤,用户就能成功地将EasyUI Datagrid中的数据导出到Excel文件中,实现数据的便捷管理和分析。在实际应用中,可以根据项目需求对这个过程进行优化和扩展。
**1.1 DataGrid 自动生成列与用户自定义列** EasyUI 的 DataGrid 控件支持两种方式的数据绑定:自动列生成和用户自定义列。 - **自动列生成**:当 `AutoGenerateColumns` 属性被设置为 `true` 时,DataGrid 会根据...
1. **分析源码**:首先,我们需要查看EasyUI Datagrid的源代码,找到与序号列生成和定位相关的部分。这部分代码可能涉及DOM操作和事件绑定。 2. **创建新功能**:然后,我们需要添加新的函数或方法,用于创建可滚动...
EasyUI Datagrid支持数据导出到Excel,这通常通过后台处理实现,将Datagrid中的数据转换成Excel格式并提供下载。可以使用JavaScript触发异步请求,将当前Datagrid的数据显示范围发送到服务器,然后服务器端生成...
4. **初始化表格**:使用EasyUI的`datagrid`方法初始化表格,并传入动态生成的列配置。 ```javascript $('#datagrid').datagrid({ columns: [columns], data: dataSource.data // 数据源中的数据行 }); ``` 5. *...
DataGrid 中的列配置是通过 `frozenColumns` 和 `columns` 两个属性来实现的: - **frozenColumns**:指定哪些列是固定的,即在滚动时这些列始终显示在左侧。 - **columns**:指定 DataGrid 的所有列,包括固定列和...
"使用easyui表格数据动态生成饼图"的主题涉及到前端开发中的几个关键点:EasyUI框架、数据处理以及JavaScript图表库ECharts。下面我们将深入探讨这些知识点。 首先,EasyUI是一个基于jQuery的UI库,它提供了一系列...
在本文中,我们将深入探讨如何在EasyUI的DataGrid中扩展功能,实现一个自定义的拾色器。这个拾色器是通过结合DataGrid、ComboBox以及HTML5的Canvas元素来创建的,为用户提供一个直观的颜色选择界面。 首先,我们要...
可以使用AutoGenerateColumns属性自动生成列,或者手动定义每列的Width属性。 3. **编程实现合并**:在后台代码中,需要对DataGrid的ItemsSource进行处理,识别出哪些行或列需要合并,并设置相应的HeaderSpan属性。...
1. **查询**:EasyUI的datagrid支持动态查询,用户可以通过输入关键字或选择条件来过滤数据,实时更新显示结果。 2. **分页**:为了提高用户体验和页面性能,通常会将大量数据分成多个页进行显示。EasyUI datagrid...
本教程将深入讲解如何在.NET环境中利用EasyUI的DataGrid实现分页功能,同时也会涉及列的操作。 首先,我们需要理解什么是分页。分页是当数据量过大时,为了提高用户界面的响应速度和用户体验,将数据分成若干页进行...
标题 "easyui datagird增删改分页例子" 提示我们这个压缩包包含一个使用EasyUI DataGrid实现数据操作和分页功能的示例。EasyUI是一个基于jQuery的前端框架,DataGrid是其组件之一,常用于展示表格数据并支持用户交互...
在某些情况下,我们需要根据用户的权限或特定需求动态地调整DataGrid显示的列,这可以通过动态生成列来实现。以下是对EasyUI DataGrid动态生成列的详细说明。 首先,我们要理解DataGrid的`columns`属性。`columns`...
本文将详细介绍如何在基于EasyUI的前端框架下实现数据导出为Excel的功能。 EasyUI是一个基于jQuery的轻量级前端框架,它提供了丰富的组件和样式,帮助开发者快速构建用户界面。然而,EasyUI本身并不直接支持数据...
在本文中,我们将深入探讨如何在EasyUI框架中实现datagrid editor中的combogrid搜索框。EasyUI是一个基于jQuery的用户界面插件集合,它提供了丰富的组件,如datagrid、combogrid等,用于构建简洁且功能强大的Web应用...