2011-05-27 80 views
1

这是我的jqGrid搜索工具条脚本:jquery-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

+0

你应该**永远**一次包含相同的javascript代码:'jquery.jqGrid.min.js',''jquery.jqGrid.src.js','jquery.fmatter.js','jqModal .js'。此外,你应该加入而不是完全重写你的问题。现在你用另一个问题替换了一个问题,而我以前的回答对于其他读者来说绝对不清楚。你原来的问题是你有''op“:”bw“'而不是''op”:“cn”'。问题已经解决了?发布“数据”值是什么意思? “07”是您在搜索工具栏中输入的数据。数据已发布。是问题吗? – Oleg 2011-05-27 10:01:39

+0

@Oleg:我应该怎么做,我已经改变了? – nunu 2011-05-27 10:06:08

+0

@ Oleg:我的客人说我的问题来到'“op”'。但是当我改变它后,我的工具栏搜索仍然没有功能。我已经删除了JavaScript代码,但是,仍然无法正常工作。 – nunu 2011-05-27 10:08:37

回答

2

你应该只使用defaultSearch:'cn'选项filterToolbar方法:

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

(我还移除了默认值的选项)。

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

修订:如果你想使用不同的搜索操作的不同列,你应该使用正确的colModel选项:(末尾的'字符)的searchoptions代替searchoption

更新2:如何验证here,如果你的搜索工具栏在“行”栏键入bla

_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 

将被发送到将被解码的服务器的数据的请求as

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

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

更新12:如果您使用datatype: 'json'没有loadonce:true服务器负责对数据进行排序的,寻呼和过滤。 jqGrid只是发送参数中的相应信息(rows,page,sidx,sord,_search:true,filters)。如果你不能或不想在服务器端做所有这些,你可以使用loadonce:true和客户端部分(自己的jqGrid)在第一次加载之后将datatype更改为'local',并将完成所有操作你需要自己。如果你的数据量很小(大约100行),它工作得非常好。你可以试试这种方式。

+0

什么是不同的使用'的'字符而不是? – nunu 2011-05-27 09:10:56

+0

@Oleg:它使我的网格无法过滤数据。 – nunu 2011-05-27 09:21:28

+0

@nunu:我不明白你的问题。有一个选项'searchoptions'(见[文档](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:search_config#colmodel_options)),它将被jqGrid读取和解释。没有选项'searchoption'这是未知的,将被忽略。 – Oleg 2011-05-27 09:21:35