jqgrid ajax查询,jqGrid查询配置

jqGrid的列可以用于查询表单。表格查询按照规则从服务器加载数据。

目前没有查询本地数据的模块当datatype设置为local。所有查询都是通过服务器(Currently we do not have module for searching on local data i.e when a datatype options is set to local. All the searching is done server side).

有4中查询方法

这些方法使用jqGrid通用选项,仅能在已经构造过的grid上调用。

每个查询方法需要附加的模块,这些模块需要倒入。

所有查询模块(除了自定义查询和工具栏查询)使用下面的语言文件中的默认定义

$.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 配置

jqGrid3.5+每个查询模块都可以使用通用查询选项。下面为一些选项,在colModel中配置。 注意,不是所有选项对特定方法都有效。

选项

类型

描述

默认值

search

boolean

定义此列能否被查询

true

stype

string

定义此列查询输入对象的类型。可以为text或select

text

searchoptions

object

JSON对象,包含查询域的定义,事件和其他属性,参考下面

searchrules

object

JSON对象,包含验证用户输入的条件

searchoptions对象配置

这些配置不适用自定义查询方法,这个方法使用另外的选择

属性

类型

描述

dataUrl

string

仅对select元素有用,即 stype:'select'.。指定select元素通过ajax从哪个url地址获取,需要返回有效的select元素的html代码,如返回

One

Two

,仅调用一次his is called only once.

buildSelect

function

仅当设置 dataUrl了参数后调用此方法。用于创建select元素(如返回json格式的数据,而不是select的html代码就需要自己构造select的html代码了)。此函数需要返回如dataUrl中定义返回的html代码,参数为服务器响应(不知道是xhr还是返回的内容,没有测试)

dataInit

function

元素创建时调用一次。参数为创建的元素对象。

dataInit: function(elem) {

//do something

}

可以通过此事件绑定附加事件,如果绑定datepicker,time picker等。。

dataInit : function (elem) {

$(elem).datepicker();

}

dataEvents

array

绑定到元素事件列表,调用$(”#id”).bind(type, [data], fn)绑定事件,格式如下

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” }//给查询对象增加title属性

searchhidden

boolean

默认grid中隐藏的元素不能被查询。要使隐藏域可以查询,配置这个为true

sopt

array

在高级,单字段,工具栏查询中使用,定义此字段可用的操作符。如果不设置,会使用所有可用操作符。用于工具栏查询第一个元素为操作符按钮(When used in toolbar searching the first element is used.),可用值为

['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']

sopt数组中操作符可以以任何循序出现。

defaultValue

string

如果内容为空(个人感觉应该是这个,而不是不为空)设置查询输入元素的默认值(If not empty set a default value in the search input element.)

value

mixed

仅用于select元素,定义查询对话框中select的options。dataUrl没有设置时,这个值可以为字符串或者对象。

为字符串,格式如“1:item1;2:item2...”,value:text代表一个option的value和text,多个项目用分号(;)分隔开,此字符串不能以分号结

为对象,格式如seachoptions:{value:{1:'One',2:'Two'}}

注意:stype为select,searchoptions没有设置dataUrl,将从searchoptions的value属性获取,2个都没定义则从colModel定义的editoptions中获取。

colModel 调用方式

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();

}

searchrules

在colModel中定义可查询元素附加的属性。通常用于在提交数据到服务器前,验证用户输入的数据,调用方式

jQuery("#grid_id").jqGrid({

...

colModel: [

...

{name:'price', ..., searchrules:{required:true....}, search:true },

...

]

...

});

下面为可用选项

配置

类型

描述

required

boolean

(true or false)设置为true,不允许内容为空,为空将会显示一个错误信息。

number

boolean

(true or false)设置为true,输入内容只能为数字,否则将会显示一个错误信息。

integer

boolean

(true or false)设置为true,输入内容只能为整数,否则将会显示一个错误信息。

minValue

number(integer)

最小值,如果内容小于这个配置值,将会显示错误信息。

maxValue

number(integer)

最大值,如果内容大于这个配置值,将会显示错误信息。

email

boolean

设置为true,输入内容格式需要满足email格式要求,否则将会显示一个错误信息。

url

boolean

设置为true,输入内容格式需要满足url格式要求,否则将会显示一个错误信息。

date

boolean

设置为true,输入内容格式需要满足日期格式要求(使用ISO格式,”Y-m-d“),否则将会显示一个错误信息。

time

boolean

设置为true,输入内容格式需要满足时间格式要求,否则将会显示一个错误信息。 目前仅支持”hh:mm“和后接可选的 am/pm 时间格式

custom

boolean

设置为true,允许使用自定义的验证方法,如下

custom_func

function

custom设置为true时需要配置此函数。函数参数,输入控件的值,name名称(来自colModel)。 函数需要返回一个数组包含以下项目 第一项:true/false,指定验证是否成功 第二项:当第一项为false有效,显示给用户的错误信息。 格式如:[false,”Please enter valid value”]

“searchrules仅用于查询对话框,不用于查询过滤(searching filter)”,参考:[http://stackoverflow.com/a/9011733]

自定义验证示例

function mypricecheck(value, colname) {

if (value < 0 || value >20)

return [false,"Please enter value between 0 and 20"];

else

return [true,""];

}

jQuery("#grid_id").jqGrid({

...

colModel: [

...

{name:'price', ..., searchrules:{custom:true, custom_func:mypricecheck....}, search:true },

...

]

...

});

你需要知道的

所有查询模块使用jqGrid配置中的url。某些方法的参数可以配置来替代这个url。

执行查询时,postData中自动填充需要的数据。

配置jqGrid的search参数以便启用查询功能。服务器端的名称为 _search(注意不同),可以通过GET或者POST方法获取。

jqGrid有searchdata配置,给查询附加额外参数,用于扩展postData对象。(For the search we have additional array searchdata array in the grid options. This array extends the postData array).

点击导航层的刷新按钮触发grid重新加载时,search被设置为false。

每个查询方法创建自己的方法用于清空postData对象中的查询数据。

加支付宝好友偷能量挖...

原创文章,转载请注明出处:jqGrid查询配置

2013-7-6Web开发网

阅读(918)喜欢(0)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要在你的 HTML 文件里引入 jQuery 和 jqGrid 的相关文件: ```html <!-- 引入 jQuery --> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <!-- 引入 jqGrid 的 CSS 文件 --> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/free-jqgrid/5.8.2/css/ui.jqgrid.min.css" /> <!-- 引入 jqGrid 的 JavaScript 文件 --> <script src="https://cdn.bootcdn.net/ajax/libs/free-jqgrid/5.8.2/jquery.jqgrid.min.js"></script> ``` 然后,在你的 JavaScript 文件里,定义 jqGrid配置: ```javascript $(function() { $("#jqGrid").jqGrid({ url: "your_data_url", // 数据请求的 URL mtype: "GET", // 请求方式 datatype: "json", // 数据类型 colModel: [ // 列定义 { label: "ID", name: "id", key: true, width: 75 }, { label: "姓名", name: "name", width: 150 }, { label: "年龄", name: "age", width: 150 }, { label: "邮箱", name: "email", width: 150 } ], viewrecords: true, // 显示总记录数 height: 250, // 表格高度 rowNum: 20, // 每页显示的记录数 rowList: [20, 50, 100], // 每页显示记录数的下拉列表 pager: "#jqGridPager", // 分页控件的 ID caption: "jqGrid 示例" // 表格标题 }); }); ``` 最后,在你的 HTML 文件里,添加一个表格和分页控件的容器: ```html <!-- 表格容器 --> <table id="jqGrid"></table> <!-- 分页控件容器 --> <div id="jqGridPager"></div> ``` 这样,一个简单的 jqGrid配置完成了。当你访问 HTML 文件时,就会看到一个包含数据的表格和分页控件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值