当前位置:  编程技术>jquery

Jquery easyui之datagird查询框扩展示例

    来源: 互联网  发布时间:2014-10-08

    本文导语:  整理下对jquery easyui中的datagrid查询框的扩展的思路。 1、首先、在进行扩展时查询框封装的是一个表单,此表单中需要包含jquery eaysui的自定义的表单,如combobox、datebox、datetimebox等等。那么就需要定义一系列的jquery easyui的表单...

整理下对jquery easyui中的datagrid查询框的扩展的思路。

1、首先、在进行扩展时查询框封装的是一个表单,此表单中需要包含jquery eaysui的自定义的表单,如combobox、datebox、datetimebox等等。那么就需要定义一系列的jquery easyui的表单组件数组。在看过easyui源码之后,发现在datagrid中已经定义了这么一个数组,存储了大部分的表单组件,即为editors。

2、接着、就要考虑如何扩展查询框这个属性啦,这很简单,只要在定义datagrid时,多添加一个属性就好了,此处我定义了searchbar,是一个数组。这个数组定义的方式和可编辑表格中的editor类似。

可以参考可编辑表格的实例。
 

代码示例:
{
type:'text',
name: 'Names',
label:'人员姓名'
}
 

其中、type即为表单组件的类型,上面定义的是文本框。具体有那些类型可以参考editors。当然需要的话可以自己扩展(如可以定义一个又开始和结束时间的查询控件)。
为了以后能够对其进行扩展,在searchbar中定义了另一个属性forms来存储查询表单中的内容。

3、第三个问题来了,进行查询时,会遇到分页查询的问题。这要求在每次进行查询时,能够在每次查询时把查询参数也一起传到后台,怎样才能实现呢?细心的你也许已经发现,在datagrid中,提供了queryParams这个参数。

这个在Jquery easyui之控件参数传递(http://www./article/jquery/20936.html)中提到过。

能够在每次查询时将已定义的参数传递到相应的URL地址。
在单击查询按钮时,需要调用datagrid的方法,将表单查询参数集成到queryParams当中,然后传递到URL中,这就是load方法。这将为我们扩展searchbar提供了便利。

4、有了上面几点作为支持,实现查询框的功能已经不在话下了。但是还有一个样式问题,当时这个问题让我很是纠结(当初样式学的很烂,嘻嘻)。这个问题就是如何让查询框能够上下对齐而且自动换行,在这之前就是如何将这些查询组件组装到已有的datagrid中。

1,样式代码:
 

代码示例:

/* 添加查询框 */
.datagrid-searchbar{
clear:both;
float:left;
margin-bottom:5px;
}

.datagrid-searchform {float: left;width: 260px;margin:0;padding:0;}
.datagrid-searchform dl {float: left;width: 260px;line-height: 25px;color: #565656;margin:0;padding:0;margin-top:6px;}
.datagrid-searchform dd {float: left;width: 100px;text-align: right;margin:0;padding:0;}
.datagrid-searchform dt {float: left;width: 160px;margin:0;padding:0;}
.datagrid-searchform2 {float: left;width: 446px;margin:0;padding:0;}
.datagrid-searchform2 dl {float: left;width: 446px;line-height: 25px;color: #565656;margin:0;padding:0;margin-top:6px;}
.datagrid-searchform2 dd {float: left;width: 113px;text-align: right;margin:0;padding:0;}
.datagrid-searchform2 dt {float: left;width: 333px;margin:0;padding:0;}
.datagrid-searchbar a.l-btn{margin-right:20px;float:right;margin-top:5px;}
 

2,js代码,分两部分 :
第一部分是来控制datagrid高度的代码,这是由于扩展的searchbar要占用一定的高度。
放置代码的具体位置是在wrap.children("div.datagrid-toolbar").outerHeight(true)后面再减去wrap.children("div.datagrid-searchbar").outerHeight(true)即可。

第二部分既是对searchbar的扩展,找到$("div.datagrid-pager",_3ae).remove();然后在前面加上如下代码:
 

代码示例:

//TODO add the searchbar
$("div.datagrid-searchbar",_3ae).remove();//和pager,toolbar一样,先清理一下。
if(opts.searchbar){//看看是不是已经定义了searchbar
var formId = opts.searchbar.formId;//为了能够便捷的对查询表单的操作,给查询表单定义了id
var form = $("

");
if(formId && $.trim(formId) != ""){
form.attr("id",formId);
}
var tb=$("").prependTo(_3ae);
var forms = opts.searchbar.forms;//已定义的查询表单内容
//save all editors for get the editor value;
var searchEditors = [];//这是用来存储所有表单控件相关属性的,为了能够最后统一获取查询表单值
form.appendTo(tb);
if(forms){
//show form with specific style
for(var i=0;i

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jQuery 扩展插件 jQuery.dragmove
  • jQuery Mobile 图表扩展 JQMCharts
  • 扩展jQuery对象时如何扩展成员变量具体怎么实现
  • jQuery的文本编辑框扩展插件 TextExt
  • jquery easyui表单重置扩展思路
  • jQuery定时器插件 jQuery Timers应用示例 iis7站长之家
  • Jquery easyui表单异步验证扩展
  • Jquery中扩展方法extend使用技巧
  • jQuery的表格扩展插件 jTable
  • 文本域光标操作的jQuery扩展代码
  • 文本域光标操作的jQuery扩展分享
  • Jquery easyui中combobox的默认“请选择”“全部”扩展示例
  • jquery对象/标签映射扩展 NickName
  • 通过javascript库JQuery实现页面跳转功能代码
  • jQuery鼠标动画插件 jquery-ahover
  • jQuery概述,代码举例及最新版下载
  • jQuery向导插件 Jquery Wizard Plugin
  • Jquery操作html复选框checkbox:全选,全不选和反选
  • jQuery圆角插件 jQuery Corners
  • struts+spring+hibernate+jquery实现分页功能的几个基本类介绍(异步加载)
  • jQuery相册插件 jQuery.popeye
  • jQuery UI组件 jQuery UI
  • jQuery右键菜单插件 jQuery ContextMenu
  • jQuery分页插件 Pagination jQuery Plugin
  • jQuery日历插件 jQuery Week Calendar
  • jQuery的中文日历插件 jQuery.datePickerCn
  • jQuery实现CSS3动画效果的插件 jQuery Transit
  • jQuery的CSV插件 jQuery CSV
  • jQuery的气泡提示插件 jquery.ns_bub.js
  • jQuery气泡提示插件 jquery-rollover-tooltip
  • jQuery对话框 jQuery Modal Dialog




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3