jquery-jqgrid:如何在工具栏搜索中发布值?

时间:2011-05-27 08:29:13

标签: jquery search jqgrid toolbar

这是我的jqGrid搜索工具栏脚本:

<link rel="stylesheet" type="text/css" media="screen" href="jqGrid/css/ui.jqgrid.css" />
<link rel="stylesheet" type="text/css" media="screen" href="jqGrid/plugins/ui.multiselect.css" />
    <script src="jqGrid/js/i18n/grid.locale-en.js" type="text/javascript"></script>
    <script src="jqGrid/js/jquery.jqGrid.min.js" type="text/javascript"></script>
    <script src="jqGrid/js/jquery.jqGrid.src.js" type="text/javascript"></script>
    <script src="jqGrid/src/jquery.fmatter.js" type="text/javascript"></script>
    <script src="jqGrid/src/jqModal.js" type="text/javascript"></script>

jQuery("#list").jqGrid({
        url:'dounfinish.php',
        datatype: 'json',
        mtype: 'POST',
        colNames:['id','Date', 'Line'],
        colModel :[ 
                   {name:'def_id', index:'def_id', hidden:true, width:55}, 
                   {name:'Problem_date', index:'Problem_date', width:90, editable:true}, 
                   {name:'Line', index:'Line', width:80, align:'right',                   editable:true,search:true,stype:'text',searchoptions:{sopt:['cn']}}],
        pager: jQuery('#pager'),
        rowNum:10,
        rowList:[10,20,30],
        sortname: 'Problem_date',
        sortorder: "desc",
        viewrecords: true,
        imgpath: 'themes/basic/images',
        caption: 'OQC DEFECT DATA'
        });

jQuery("#list").jqGrid('navGrid','#pager',{edit:true,add:false,del:false,search:false});
jQuery("#list").jqGrid('filterToolbar', { stringResult: true, searchOnEnter: true, groupOp:'AND'});

在控制台中:

_search:true
nd:1306513344121
rows:10
page:1
sidx:Problem_date
sord:desc
filters:{"groupOp":"AND","rules":[{"field":"Line","op":"cn","data":"7"}]}

如何发布“数据”值?所以,我可以搜索数据使用工具栏搜索。


grid

1 个答案:

答案 0 :(得分:2)

您应该使用filterToolbar方法的defaultSearch:'cn'选项:

jQuery("#list").jqGrid('filterToolbar', {stringResult: true, defaultSearch:'cn'});

(我另外删除了带有默认值的选项)。

如果您使用本地网格数据或选项loadonce:true,则另一个jqGrid参数ignoreCase:true也可能对您有用。

更新:如果您要对不同的列使用不同的搜索操作,则应使用正确的colModel选项:searchoptions而不是searchoption('s '最后的角色)。

更新2 :如果您在“行”列中的搜索工具栏中键入bla,请使用数据

验证here
_search=true&nd=1306489580463&rows=10&page=1&sidx=Problem_date&sord=desc&filters=%7B%22groupOp%22%3A%22AND%22%2C%22rules%22%3A%5B%7B%22field%22%3A%22Line%22%2C%22op%22%3A%22cn%22%2C%22data%22%3A%22bla%22%7D%5D%7D

将被发送到将被解码为

的服务器
_search=true&nd=1306489580463&rows=10&page=1&sidx=Problem_date&sord=desc&filters={"groupOp":"AND","rules":[{"field":"Line","op":"cn","data":"bla"}]}

所以将使用的操作是“cn”。

更新3 :如果您使用datatype: 'json'而不使用loadonce:true,则服务器负责对数据进行排序,分页和过滤。 jqGrid只是在参数(rowspagesidxsord_search:truefilters)中发送相应的信息。如果您不能或不想在服务器端执行所有操作,则只需使用loadonce:true,客户端部分(jqGrid自己)将datatype更改为“本地”在第一次加载之后,将完成你自己所需的一切。如果您的数据大小很小(大约100行),它的工作效果非常好。你可以试试这种方式。