jqGrid:单个字段搜索中的搜索规则

时间:2013-04-17 02:46:14

标签: jqgrid

我正在尝试仅针对整数数据验证搜索字段,但遗憾的是我无法这样做。我已经尝试了所有可能的解决方案,如searchrules:{required:true,integer = true}等。 但是没有一个证明是富有成效的。 我基本上使用字段启动搜索对话框,而不输入任何数据,我点击“查找”按钮。根据上述选项,我相信应该向用户显示验证消息,要求他在点击查找之前在字段中输入值。

[更新] - 代码段

            var grid = $("#list");  
            grid.jqGrid({
             url:'/index.jsp',
             datatype: 'json',
             mtype: 'POST',
             colNames:['Name','Age', 'Address'],
             colModel :[ 
                  {name:'name', index:'name', width:55,search:true }, 
                  {name:'age', index:'age', 
                   width:90,editable:true,search:true, stype:'text',
                   searchrules:{required:true,integer:true}}, 
                  {name:'address', index:'address', width:80, 
                   align:'right', editable: true,search:false }
             ],
             pager: '#pager',
             jsonReader : {
                     root:"address",
                     page: "page",
                     total: "total",
                     records: "records",
                     repeatitems: false
             },
             rowNum:10,
             rowList:[10,20,30],
             sortname: 'name',
             sortorder: 'desc',
             viewrecords: true,
             gridview: true,
             autowidth: true,
             toppager: true,
             loadtext: "Loading records.....",
             caption: 'Test Grid',
             gridComplete: function(){ 

         }

          });

      **grid**.jqGrid('navGrid','#pager',
      {view:true,edit:true,add:true,del:true,refresh:true,
       refreshtext:'Refresh',addtext:'Add',
       edittext:'Edit',cloneToTop:true,
       edittitle: "Edit selected row"},
      {},{},{},
      {caption: "Search The Grid",Find: "Find Value",Reset: "Reset"},
      {});

[更新]:无法使搜索规则适用于单/高级搜索模式。

[更新]:即使是“搜索中的验证” jqGrid Demo不适用于搜索规则。

1 个答案:

答案 0 :(得分:0)

描述问题的原因是jqGrid中的错误。 The line

ret = $.jgrid.checkValues(val, -1, null, colModelItem.searchrules, colModelItem.label);

$.jgrid.checkValues的第三个参数初始化为null,但checkValues实施的最后一个版本已开始(请参阅the line

var cm = g.p.colModel;

g已初始化为null。产生错误的The last modification基于my suggestion,但我没有编写代码的一部分。

可以用不同的方式解决问题。我建议修改$.jgrid.checkValues将使用null参数调用的行到以下

ret = $.jgrid.checkValues(val, -1, {p: {colModel: p.columns}}, colModelItem.searchrules, colModelItem.label);

此外,我建议您修改one more line

if(!nm) { nm = g.p.colNames[valref]; }

if(!nm) { nm = g.p.colNames != null ? g.p.colNames[valref] : cm.label; }

jquery.jqGrid.src.js的固定版本可以获得here。我将在以后发布我的错误报告并提供相同的建议。