2012-04-02 34 views
0

在將數據添加到數據表之前,我將字符串的長度縮短爲20個字符 - http://www.datatables.net/。當我搜索數據表時(通過在搜索框中輸入)截斷的數據不再可搜索。是否可以將截斷的數據添加到數據表而不會導致數據表在搜索時忽略截斷的文本。搜索時被忽略的文本 - 數據表

這是使用將數據添加到數據表的代碼IM:

if(data.length > 20){ 
data= data.substring(0 , 20); 
} 
$('#myTable').dataTable().fnAddData([ 
data    
] 
); 

問題是,被截斷的數據不進行搜索。

+0

需要一些澄清。這是什麼意思? - 「當我搜索數據表時,截斷的數據不再可搜索」。另外什麼庫是'dataTable()'的一部分? – Terry 2012-04-02 20:54:25

+0

@TerryR我已經更新了這個問題。 – 2012-04-02 21:10:28

+0

Hiya @ user470184我可能會爲您解決問題;如果我錯了,請糾正我,但您希望列僅顯示部分文本,但要在數據表中搜索列中的隱藏文本? :)我有一個示例Jsfiddle所有設置爲您的需要,如果多數民衆贊成你想要什麼,(ü - 顯然使用數據表):)有一個很好的,歡呼! – 2012-04-02 21:13:05

回答

2

你好工作演示http://jsfiddle.net/Gnazp/5/

搜索foobar1或foobar2等,這是隱藏在表顯示屏上,但它們是您可以在代碼的jsfiddle看到列的一部分。

您可以閱讀代碼中的註釋,但實際上代碼所做的訣竅是首先將數據與篩選器綁定,以便篩選器具有關於整個文本的信息,然後截斷字符串,因此它顯示爲ou希望它出現:(如果你將過濾前截斷字符串將忘記你的子字符串中獲得的數據,希望示例代碼將在jsfiddle中更好地擴展)

注意:請讓我知道我可以複製粘貼所有的代碼在我的文章。

說明

在這種情況下

<td class="truncatethis">test yes you can, foobar foonewbar.</td> 

僅顯示:test yes y的數據表屏幕上,但如果搜索foobar它會給你正確的結果。

要顯示截斷屏幕,我已經叫子方法過濾器被調用後:在那的jsfiddle底部查找代碼:

$(".truncatethis").each(function(){ 

    if($(this).text().length > 10){ 
       //alert($(this).html()); 
       $(this).html($(this).text().substring(0 , 10)); 
     } 

});​ 

希望這有助於,乾杯!