2011-08-26 46 views
2

我正在使用最新的jqGrid版本,我想知道是否可以使用自定義規則進行本地篩選(請參見下面的示例)。首先,過濾器工具欄可以通過應用jqGrid自定義篩選與內置過濾工具欄中的內置

jQuery("#grid").jqGrid('filterToolbar', options);

在過去的接通,我實現我目前使用不支持本地過濾此手動(版本,所以我根據我的需求添加了這個功能),現在,在更新到最新版本之後,我問自己,jqGrid默認情況下是否提供了這種功能(不是本地過濾,它的作用,而是自定義過濾規則),因爲過去幾個月功能顯着增加。我閱讀文檔並搜索了互聯網,但沒有找到合適的例子。

這是我想達到的一個例子。

有一列First Name其中包含顯示的人的名字。

Stefan 
Stephan 
Stephano 
Stelios 
Philip 
Phillip 
Philipp 
Ivan 
Iwan 
... 

現在,用戶在過濾棒First Name柱,並用默認過濾算法的結果進入Ste應該:)

Stefan 
Stephan 
Stephano 
Stelios 

到目前爲止好。但是如果我想顯示皮質相似的名字呢?我希望用戶輸入Ste*an*只顯示

Stefan 
Stephan 
Stephano 

所以你看,*代表一個通配符任何字符零次或多次。此外,我希望用戶能夠進入Ste?an*導致

Stefan 

其中?指任何字符一次。最後一個要求是使過濾更寬容,而不是隻有孔線(起點和終點,相當於正則表達式),但如果它包含文本的列值匹配輸入,即e*o匹配匹配

Stephano 
Stelios 

如果你可以給我一個*通配符的提示,其他問題應該自行解決。

在此先感謝

回答

3

在我以前的答案herehere我描述了一個如何實現自定義篩選。

如果您在過濾器的「客戶」列the demo類型,例如「EV」,你會看到以下內容:

enter image description here

您可以輕鬆修改演示製作如「斯蒂芬」和'Stefan'相當。

我個人主要使用defaultSearch: 'cn'filterToolbar選項。加上ignoreCase: true的使用,它遵循非常好的用戶體驗。我個人認爲這樣的過濾是足夠好的。更高級的用戶可以使用高級搜索來創建過濾器,如'開始','Ste'和'包含''an',而不是Ste*an*

不過,您可以使用my old demo的想法來覆蓋jqGrid使用的internal searching methods

+0

嗨奧列格,因爲這個答案部分幫助我,我「接受」它。正如我們的客戶希望我們支持*和?我們必須自己添加這個功能。謝謝。 – Kai

+0

@凱:不客氣! – Oleg