從jqGrid中searchGrid引發的深思


項目中jqGrid因為需求列需要動態隱藏或者顯示多次,這就給添加或者查詢數據造成了一些不便,初步設想表單提交和搜索框根據列的顯示動態改變。

后來找了一下jqGrid的api發現有一個searchGrid的方法,可以搜索非隱藏列的數據。乍一看視乎挺符合需求,也可以減少很多代碼量。

jQuery("#search").jqGrid('searchGrid', {
      sopt : [ 'cn', 'bw', 'eq', 'ne', 'lt', 'gt', 'ew' ]
    });

第一步,不管其他官網代碼先一頓CV。點開一看效果不錯。

字段可以選擇,可以選擇比較的類型,字段和值會通過searchField和searchString傳入后端,然后在mybatis中加上

<if test="searchField !=null and searchField !='' and searchString != '' and searchString !=null ">
	and ${searchField} like '%${searchString}%'
</if>

 大功告成。

但是問題來了每次表格列改變reload后表格字段不是改變,於是繼續百度searchGrid 重置。好的沒結果出來,一下子懵逼了。

一下子慌了神,沒得借鑒了和CV了。

這下只能看源碼了,點開一看

熟悉的感覺,根本就是天書。

硬着頭皮看了看,發現其實沒有想象中那么難。靜下心來一下子就發現解決問題的代碼了,同時發現查詢也只需要like於是修改了一下js

	$("#grid").jqGrid('searchGrid', {
		recreateFilter:true,
		sopt : [ 'cn']
	  });  

一下就解決問題了,每次關閉searchGrid后他就會重置。

api中還有很多東西搜索后關閉啊,關閉后重置啊,我們都可以根據需求自己去添加。

 

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM