2011-05-27 42 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

相關問題