jqgrid--search_jqgrid search_yj_Newcomer的博客-程序员秘密

技术标签: jqGrid  

jqgrid学习---------搜索

表格中的所有列都可以作为搜索条件。

所用到的语言包文件

· $.jgrid = { 

· ... 

·    search : { 

·      caption: "Search...", 

·      Find: "Find", 

·      Reset: "Reset", 

·      odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'], 

·      groupOps: [ { op: "AND", text: "all" }, { op: "OR", text: "any" } ], 

·      matchText: " match", 

·      rulesText: " rules" 

·    }

colModel 设置

可选参数

类型

说明

默认值

search

boolean

是否是搜索列

true

stype

string

搜索类型,text类型或者select类型

text

searchoptions

object

对搜索条件进行一些设置

searchoptions 参数

属性

类型

说明

dataUrl

string

只有当搜索类型为select才起效

buildSelect

function

只有当dataUrl设置时此参数才起效,通过一个function来构建下拉框

dataInit

function

初始化时调用,用法:dataInit: function(elem) {do something}通常用在日期的选择上. Example:dataInit : function (elem) {$(elem).datepicker();}

dataEvents

array

事件列表,用法:dataEvents: [{ type: 'click', data: { i: 7 }, fn: function(e) { console.log(e.data.i); }},{ type: 'keypress', fn: function(e) { console.log('keypress'); } }]

attr

object

设置属性值。attr : { title: “Some title” }

searchhidden

boolean

默认情况下,隐藏值不是搜索列。为了使隐藏值可以作为搜索列则将此设为true

sopt

array

此参数只用到单列搜索上,说明搜索条件。可用值: ['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc']意思为['equal','not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain']

defaultValue

string

默认值

value

mixed

只用在搜索类型为select下。可以是string或者object,如果为string则格式为value:label,且以“;”结尾;如果为object格式为editoptions:{value:{1:'One';2:'Two'}}

· jQuery("#grid_id").jqGrid({ 

· ... 

·    colModel: [  

·       ...  

·       {name:'price', index:'price', width:60, search:true, stype:'text', searchoptions:{dataInit:datePick, attr:{title:'Select Date'}} }, 

·       ... 

·    ] 

· ... 

· }); 

· datePick = function(elem) 

· { 

·    jQuery(elem).datepicker(); 

· }

需要说明的:
所有的搜索都是使用url来到服务器端查询数据。 
当执行搜索时会用查询数据填充postData array 
发送到服务器端搜索字符串的名称为_search 
当点击刷新按钮时不会使用搜索条件 
每个搜索方法都有自己的数据清空方法

一、Jqgrid学习 -------搜索工具栏

搜索工具栏只是在列标题下面构造一个输入框。且使用表格的url进行搜索记录,发到服务器端数据格式为name:value,而且是附加在postData(请求的数据)之后。

jQuery("#grid_id").filterToolbar(options); 

new api:

jQuery("#grid_id").jqGrid('filterToolbar',options); 

options:参数

可选参数

类型

描述

默认值

autosearch

boolean

查询规则,如果是text类型则是当按下回车键才去执行查询;如果是select类型的查询则当值改变时就去执行查询

true

beforeSearch

function

执行查询之前触发此事件

null

afterSearch

function

查询完成后触发事件

null

beforeClear

function

清空查询条件值时触发事件

null

afterClear

function

清空查询条件后触发事件

null

searchOnEnter           boolean           搜索规则,为true则看autosearch属性,为false当输入时则立即执行搜索    true

stringResult                boolean           决定怎样发送数据,为false则按key=value的格式,为true则发送一个filters对象    false  如:

[javascript] view plain copy
  1. filters =   
  2.    {  
  3.     "groupOp":"OR",  
  4.     "rules":[{ "field":"a.id","op":"eq","data":"1"}],  
  5.     "groups":[  
  6.          {  
  7.              "groupOp":"AND",  
  8.              "rules":[{ "field":"a.id","op":"eq","data":"2"}],  
  9.              "groups":[...]  
  10.          }  
  11.      ]  
  12. }  

groupOp                  string                  当stringResult为true时有效,决定查询组合的操作符,可选AND、OR          默认:AND 。如上图

方法:

方法

描述

triggerToolbar

执行查询时调用此方法

clearToolbar

当清空查询条件值时触发此函数

toggleToolbar

Toggeles工具栏

注意: 这三种方法在new api无效

二、Jqgrid学习 -------自定义搜索(和工具栏搜索类似)

<div id="mysearch"></div>

jQuery("#mysearch").filterGrid('#grid_id',options);

options:参数

参数

描述

默认值

gridModel

当为ture我们会使用colModel中的属性构造查询条件,所用到的参数:name, index, edittype, editoptions, search.还有一个参数:defval:查询条件的默认值;surl:当edittype:'select'时获取select数据的url,格 式:<select><option value='val1'> Value1 </option><option value='val2'> Value2 </option>…<option value='valn'> ValueN </option></select>

false

gridNames

gridModel为true时起效,设置查询列的名称

false

filterModel

gridModel为false时起效,格式:{label:'LableFild', name: 'colname', stype: 'select', defval: 'default_value', surl: 'someurl', sopt:{optins for the select}}。label:字段显示名称;name:列名;stype:输入框类型,text或者select;surl:获取select数据的地 址,要求的内容为html格式:<select><option value='val1'> Value1 </option><option value='val2'> Value2 </option>…<option value='valn'> ValueN </option></select>;sopt:同editoptions

[]

formtype

定义表单如何被构造,'horizontal' or 'vertical'

autosearch

如果为true:当点击回车键触发查询;当select值变化时触发查询

formclass

可以使用的css

filterform

tableclass

可以使用到table上的css

filtertable

buttonclass

按钮上使用的css

filterbutton

searchButton

搜索按钮

Search

clearButton

清空数据的按钮

Clear

enableSearch

启用禁用搜索按钮

false

enableClear

启用禁用清空按钮

false

beforeSearch

搜索之前触发的事件

null

afterSearch

搜索完成之后触发的事件

null

beforeClear

清空数据之前触发的事件

null

afterClear

清空数据之后触发事件

null

url

搜索数据的url

‘’

marksearched

当为true时,每次查询之后所有查询的列都标记为可查询列

true

 

三、单字段搜索

[javascript] view plain copy
  1. <script>  
  2. ...   
  3. jQuery("#grid_id").searchGrid( options );  
  4. ...  
  5. </script>  

new api:

[javascript] view plain copy
  1. <script>  
  2. ...   
  3. jQuery("#grid_id").jqGrid('searchGrid', options );  
  4. ...  
  5. </script>  


在Navigator按钮栏中的查询按钮,默认就是调用这个方法。

 

searchGrid也有很多选项,在language文件(grid.locale-xx.js)中,有关于这些选项的默认值定义。下面介绍一下主要常用的选项:

  • afterShowSearch:用于定义每次查询对话框显示之后,要执行的事件函数;
  • beforeShowSearch:用于定义每次查询对话框显示之前,要执行的事件函数;
  • caption:查询对话框的标题;
  • closeAfterSearch:如果设为true,则每次在查询对话框中点击“查询”按钮完成查询后,对话框都会被关闭;默认为false;
  • closeAfterReset:如果设为true,则每次在查询对话框中点击“重置”按钮完成查询后,对话框都会被关闭;默认为false;
  • closeOnEscape:如果设为true,则当按ESC键的时候,对话框会被关闭;默认为false;
  • Find:查询对话框里“查询”按钮上的文本;
  • Reset:查询对话框里“重置”按钮上的文本;
  • sopt:用来设置通用的查询规则,如['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc'];如果为设置,则使用全部规则;
  • odata:用来翻译sopt中规则的对应数组;
  • onClose:当查询对话框关闭时,将要执行的事件函数。可以返回true或false;如果返回false,则查询对话框不会被关闭。
  • onInitializeSearch:当查询对话框创建时,将要执行的事件函数。
  • recreateFilter:如果设置为true,则当动态改变colModel的属性时,重建查询并解除时间绑定。
  • sField, sOper, sValue:当提交查询请求时,对应着所包含的有关于查询的参数;默认值分别是'searchField','searchOper','searchString'。
  • drag :boolean 能否拖拽搜索框 ,默认:true
  • multipleSearch :boolean  多字段查询 默认:false
  • cloneSearchRowOnAdd :boolean 当multipleSearch为true时有效 默认:true

注意:在searchGrid方法中设定这些选项,和在navGrid方法的prmSearch参数中设置这些选项(参见上一篇),作用效果是相同的。

[javascript] view plain copy
  1. var singleCriterionSearch = function() {    
  2.     $("#gridTable").jqGrid("searchGrid", {    
  3.         caption: "查找",    
  4.         Find: "Go!",    
  5.         closeAfterSearch: true    
  6.     });    
  7. };    


等同于

[javascript] view plain copy
  1. $("#gridTable").jqGrid("navGrid""#gridPager", {},{},{},{},    
  2.     {   // 与查询相关的prmSearch参数    
  3.         caption: "查找",    
  4.         Find: "Go!",    
  5.         closeAfterSearch: true    
  6.     },{});    
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yj_newcomer/article/details/80510958

智能推荐

5、人生中的第一个Java程序:HelloWorld_韩茹_的博客-程序员秘密

人生中的第一个Java程序:HelloWorld作者:韩茹公司:程序咖(北京)科技有限公司程序咖:IT职业技能评测平台网址:https://www.chengxuka.com任务1.编写HelloWorld程序2.尽可能的理解程序3.编译源文件4.运行程序1.编写HelloWorld程序2.尽可能的理解程序3.编译源文件4.运行程序我们已经做好了足够的准备,现在可以编写我们人生中的第一个Java程序了。有米有一种跃跃欲试的赶脚。。。...

MyBatis简介_mybatis type= 简称_呆东的博客-程序员秘密

一、ORM1.简介:ORM全称为Object Relation Mapping,即对象/关系数据库映射,是面向对象的对象模型和关系型数据之间的相互转换。可以把ORM框架理解为面向对象编程语言和数据库之间的桥梁,它把关系型数据库包装成面向对象的模型(即数据库中的表和项目中的实体对应),以面向对象的思想来操作数据库。2.基本映射方式:orm提供了持久化类和数据库表之间的关系,通过这种映射关系,...

SpringBoot源码分析-启动过程经历了什么?_BraveSoul360的博客-程序员秘密

SpringBoot源码分析-启动过程经历了什么?前言Spring Boot实战学习:1、Spring Boot介绍Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapi...

linux中C语言函数:字符串处理函数_haoshenwang的博客-程序员秘密

所有函数的头文件都为bcmp :比较两个内存中的内容bcopy : 复制内存中的内容bzero : 将一个内存内容全清零ffs : 在一个整数中查找第一个值为真的位index : 查找字符串中第一个出现的指定字符memccpy :复制内存中的内容memchr :在一块内存指定范围内查找一个指定字符memcmp :比较内存中存放的内容memcpy : 复制一块内存内容到另一块memfrob

Maven主仓库中找不到包的解决办法(如org.restlet.jee not found)_iteye_4921的博客-程序员秘密

有时候,通过maven总是找不到某些包,比如今天我就碰到 Could not find artifact org.restlet.jee:org.restlet:jar:2.3.0 , 这时候可以通过如下的方法去解决: 1、可以找到restlet的官方repo,将其加到工程的pom中:&amp;lt;repositories&amp;gt; &amp;lt;repository&amp;...

Android系统匿名共享内存Ashmem(Anonymous Shared Memory)驱动程序源代码分析_罗升阳的博客-程序员秘密

在上一文章Android系统匿名共享内存Ashmem(Anonymous Shared Memory)简要介绍和学习计划中,我们简要介绍了Android系统的匿名共享内存机制,其中,简要提到了它具有辅助内存管理系统来有效地管理内存的特点,但是没有进一步去了解它是如何实现的。在本文中,我们将通过分析Android系统的匿名共享内存Ashmem驱动程序的源代码,来深入了解它是如何辅助内存管理系

随便推点

安卓视频播放器AndroidVideoplayer_SakaueNachi的博客-程序员秘密

第一次写博客先丢个地址和readme,再慢慢编辑== github:https://github.com/tohodog/QSVideoPlayerQSVideoPlayerQSVideoView接口完善,事件的监听,设置视频比例,切换全屏等提供QSVideoViewHelp辅助类,该类提供了常用控件的逻辑和手势调节支持,可快速自定义ui打造自己的播放器,不用写一行播放逻辑架构设计优良,模块

【图像去噪】基于高斯滤波、均值滤波、中值滤波、双边滤波四种滤波实现椒盐噪声图像去噪附matlab代码_matlab科研助手的博客-程序员秘密

图像是生活中重要的信息来源,处理图像有助于理解信息的基本信息.但图像本身可能存在一些被干扰的信息或者噪声.研究了基于高斯滤波、均值滤波、中值滤波和双边滤波算法的数字图像处理技术用于对图像的噪声进行消除.通过对图像进行理论模拟和实际图像处理,对两种算法进行比较和模拟得出相应结论.为今后的噪声消除方法的选择和实际工作的改进提供数据参考和依据.图像是人类认识世界的第一视角,我们可以通过图像获得比较真实的信息和直观的结果。但实际上,在产生和传输过程中的信号不可避免地会与一些噪声混合.因此,在接收图像信号时,消除或降

oracle 数据库扩容的四种方式_oracle数据库扩容命令_一一弓也的博客-程序员秘密

 1、新添加一个表空间create smallfile tablespace &quot;TBS4&quot;datafile‘/u02/app/oracle/oradata/orcl/tbs401.dbf’ size 10M reuse autoextend on next 50M,‘/u02/app/oracle/oradata/orcl/tbs402.dbf’ size 10M re...

什么是TE,MT,ME_别说郁闷的博客-程序员秘密

<br />移动台(MS):它包括移动设备(ME)和用户识别模块(SIM)。根据业务的状况,移动设备可包括移动终端(MT),终端适配功能(TAF)和终端设备(TE)等功能部件。<br />从上面可以看出 ME 的 概念最大,它包括 MT 和 TE 。MT 完成无线传输和相关功能。TE 完成端到端应用。可以这么理解,MT 指的是我们手机,而 TE可以是笔记本电脑之类的。<br /><br />TE也可以是PDA、普通桌面电脑或其他传统的终端等设备。<br /><br />比如我以前用笔记本电脑

JAVA 并发与锁机制原理_java并发锁机制_lxlmycsdnfree的博客-程序员秘密

Lock完全用Java写成,在java这个层面是无关JVM实现的。在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实现类ReentrantReadWriteLock),其实现都依赖java.util.concurrent.AbstractQueuedSynchronizer类,实现思路都大同小异,...

推荐文章

热门文章

相关标签