基于datagrid框架的查询


Posted in Javascript onApril 08, 2013
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="jquery-easyui-1.3.2/themes/default/easyui.css" rel="stylesheet" />
<link href="jquery-easyui-1.3.2/themes/icon.css" rel="stylesheet" />
<script src="jquery-easyui-1.3.2/jquery-1.8.0.min.js"></script>
<script src="JavaScript.js"></script><!--这个是扩展Jquery的方法-->
<script src="jquery-easyui-1.3.2/jquery.easyui.min.js"></script>
<script src="jquery-easyui-1.3.2/locale/easyui-lang-zh_CN.js"></script>
</head>
<body id="layoutbody" class="easyui-layout">
<div data-options="region:'north',title:'North Title',split:true" style="height: 100px;">
</div>
<div data-options="region:'south',title:'South Title',split:true" style="height: 100px;">
</div>
<div data-options="region:'east',iconCls:'icon-reload',title:'East',split:true" style="width: 100px;">
</div>
<div data-options="region:'west',title:'West',split:true" style="width: 100px;">
</div>
<div data-options="region:'center',title:'center title'" href="CenterPage.html" style="background: #eee; overflow: hidden;">
</div>
</body>

然后是CenterPage.html框架中的代码,也就是tabs框架中的代码:

<script type="text/javascript" charst="utf-8">
//因为layout框架指向href时,只取html页面body中间的部分,所以该页面这样写即可
//有datagrid包含属性较多,所以尽量使用js的方式初始化datagrid框架
$(function () {
$("#dg").datagrid({
url: "GetJson.ashx", //指向一个一般处理程序或者一个控制器,返回数据要求是Json格式,直接赋值Json格式数据也可,我以demo中自带的Json数据为例,就不写后台代码了,但是我会说下后台返回的注意事项
iconCls: "icon-add",
fitColumns: false, //设置为true将自动使列适应表格宽度以防止出现水平滚动,false则自动匹配大小
//toolbar设置表格顶部的工具栏,以数组形式设置
idField: 'id', //标识列,一般设为id,可能会区分大小写,大家注意一下
loadMsg: "正在努力为您加载数据", //加载数据时向用户展示的语句
pagination: true, //显示最下端的分页工具栏
rownumbers: true, //显示行数 1,2,3,4...
pageSize: 10, //读取分页条数,即向后台读取数据时传过去的值
pageList: [10, 20, 30], //可以调整每页显示的数据,即调整pageSize每次向后台请求数据时的数据
//由于datagrid的属性过多,我就不每个都介绍了,如有需要,可以看它的API
sortName: "name", //初始化表格时依据的排序 字段 必须和数据库中的字段名称相同
sortOrder: "asc", //正序
columns: [[
{ field: 'code', title: 'Code', width: 100 },
{ field: 'name', title: 'Name', width: 100, sortable: true },//sortable:true点击该列的时候可以改变升降序
{ field: 'addr', title: 'addr', width: 100 }
]],//这里之所以有两个方括号,是因为可以做成水晶报表形式,具体可看demo
toolbar: [{//在dategrid表单的头部添加按钮
text: "添加",
iconCls: "icon-add",
handler: function () {
}
}, '-', {//'-'就是在两个按钮的中间加一个竖线分割,看着舒服
text: "删除",
iconCls: "icon-remove",
handler: function () {
}
}, '-', {
text: "修改",
iconCls: "icon-edit",
handler: function () {
}
}, '-']
});
});
//点击查找按钮出发事件
function searchFunc() {
alert("123");
$("#dg").datagrid("load", sy.serializeObject($("#searchForm").form()));//将searchForm表单内的元素序列为对象传递到后台
}
//点击清空按钮出发事件
function clearSearch() {
$("#dg").datagrid("load", {});//重新加载数据,无填写数据,向后台传递值则为空
$("#searchForm").find("input").val("");//找到form表单下的所有input标签并清空
}
</script>
<div class="easyui-tabs" fit="true" border="false">
<div title="数据展示表格" border="false" fit="true">
<div class="easyui-layout" fit="true" border="false">
<!--由于查询需要输入条件,但是以toolbar的形式不好,所以我们在Layout框架的头部north中书写查询的相关信息-->
<!-- 这里我们尽量使其展示的样式与toolbar的样式相似,所以我们先查找toolbar的样式,并复制过来-->
<div data-options="region:'north',title:'高级查询'" style="height: 100px; background: #F4F4F4;">
<form id="searchForm">
<table>
<tr>
<th>用户姓名:</th>
<td>
<input name="name" /></td>
</tr>
<tr>
<th>创建开始时间</th>
<td>
<input class="easyui-datetimebox" editable="false" name="subStartTime" /></td>
<!--由于datebox框架上面的数据必须是时间格式的,所以我们用editable="false"来禁止用户手动输入,以免报错-->
<th>创建结束时间</th>
<td>
<input class="easyui-datetimebox" editable="false" name="nsubEndTimeame" /></td>
<td><a class="easyui-linkbutton" href="javascript:void(0);" onclick="searchFunc();">查找</a></td>
<td><a class="easyui-linkbutton" href="javascript:void(0);" onclick="clearSearch();">清空</a></td>
</tr>
</table>
</form>
</div>
<div data-options="region:'center',split:false">
<table id="dg">
</table>
</div>
</div>
</div>
</div>

Jquery的扩展代码:

var sy = $.extend({}, sy);/*定义一个全局变量*/
sy.serializeObject = function (form) { /*将form表单内的元素序列化为对象,扩展Jquery的一个方法*/
var o = {};
$.each(form.serializeArray(), function (index) {
if (o[this['name']]) {
o[this['name']] = o[this['name']] + "," + this['value'];
} else {
o[this['name']] = this['value'];
}
});
return o;
};

图示:

基于datagrid框架的查询

 

Javascript 相关文章推荐
用客户端js实现带省略号的分页
Apr 27 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
Dec 10 Javascript
jQuery实现倒计时按钮功能代码分享
Sep 03 Javascript
js使用for循环与innerHTML获取选中tr下td值
Sep 26 Javascript
浅谈jQuery中的事件
Mar 23 Javascript
JavaScript隐式类型转换
Mar 15 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
Jan 06 Javascript
详解vue模拟加载更多功能(数据追加)
Jun 23 Javascript
node实现基于token的身份验证
Apr 09 Javascript
javascript简单实现深浅拷贝过程详解
Oct 08 Javascript
在vue中把含有html标签转为html渲染页面的实例
Oct 28 Javascript
小程序实现上下切换位置
Nov 16 Javascript
datagrid框架的删除添加与修改
Apr 08 #Javascript
jQuery中setTimeout的几种使用方法小结
Apr 07 #Javascript
jQuery setTimeout()函数使用方法
Apr 07 #Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
Apr 07 #Javascript
关于jQuery参考实例 1.0 jQuery的哲学
Apr 07 #Javascript
jQuery操作checkbox选择(list/table)
Apr 07 #Javascript
关于jQuery参考实例2.0 用jQuery选择元素
Apr 07 #Javascript
You might like
DSP接收机前端设想
2021/03/02 无线电
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
php中计算程序运行时间的类代码
2012/11/03 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
php输出xml属性的方法
2015/03/19 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
Angular实现form自动布局
2016/01/28 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
JS使用cookie设置样式的方法
2016/06/30 Javascript
Node.js调试技术总结分享
2017/03/12 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
element-ui 设置菜单栏展开的方法
2018/08/22 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
浅谈在Vue.js中如何实现时间转换指令
2019/01/06 Javascript
Python使用matplotlib的pie函数绘制饼状图功能示例
2018/01/08 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
2013/01/09 HTML / CSS
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
毕业生教师求职信
2013/10/20 职场文书
《猫》教学反思
2014/02/26 职场文书
协议书格式
2014/04/23 职场文书
销售员态度差检讨书
2014/10/26 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js