2017-06-22 58 views
0

我想在我的表中添加波斯語的排序。我用設置波斯語到數據表

https://datatables.net

我添加了這個插件排序我的表這個數據表

https://datatables.net/plug-ins/sorting/persian

這裏是我的html文件

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

<link rel="stylesheet" type="text/css" href="jquery.dataTables.min.css"> 

<script type="text/javascript" src="http://code.jquery.com/jquery-1.12.4.js"></script> 
<script type="text/javascript" src="persian.js"></script> 

<script type="text/javascript" src="jquery.dataTables.min.js"></script> 

<!-- jquery --> 


<script type="text/javascript"> 
$(document).ready(function() { 
    // $('#example').dataTable(); 
    $('#example').DataTable({ 
     columnDefs: [{ type: "pstring" , targets: 0 } 
     ] 
    }); 


}); 
</script> 
</head> 
<body> 
<table id="example" class="display" cellspacing="0" width="100%"> 
     <thead> 
      <tr> 
       <th>Name</th> 
       <th>Position</th> 
       <th>Office</th> 
       <th>Age</th> 
       <th>Start date</th> 
       <th>Salary</th> 
      </tr> 
     </thead> 

     <tbody> 
      <tr> 
       <td>هوشیار</td> 
       <td>برنامه نویس</td> 
       <td>تست</td> 
       <td>61</td> 
       <td>2011/04/25</td> 
       <td>$320,800</td> 
      </tr> 
      <tr> 
       <td>میلاد</td> 
       <td>Accountant</td> 
       <td>Tokyo</td> 
       <td>63</td> 
       <td>2011/07/25</td> 
       <td>$170,750</td> 
      </tr> 
      <tr> 
       <td>پدر</td> 
       <td>Junior Technical Author</td> 
       <td>San Francisco</td> 
       <td>66</td> 
       <td>2009/01/12</td> 
       <td>$86,000</td> 
      </tr> 



     </tbody> 
    </table> 
</body> 
</html> 

我跟着這些鏈接的配置,但它不起作用,並沒有排列一些波斯語,如「گچپژ」。

幫我解決這個問題,謝謝。

回答

0

最後我說這個劇本到我的HTML文件和它的工作。我認爲即使我在datatable.js下面添加了波斯文件,它在那之後也沒有加載!

<script type="text/javascript"> 
      var persianSort = ['آ', 'ا', 'ب', 'پ', 'ت', 'ث', 'ج', 'چ', 'ح', 'خ', 'د', 'ذ', 'ر', 'ز', 'ژ', 'س', 'ش', 'ص', 'ط', 'ظ', 'ع', 'غ', 'ف', 'ق', 'ک', 'گ', 'ل', 'م', 'ن', 'و', 'ه', 'ي', 'ي']; 
      function GetUniCode(source) { 
       source = $.trim(source); 
       var result = ''; 
       var i, index; 
       for (i = 0; i < source.length; i++) { 
        //Check and fix IE indexOf bug 
        if (!Array.indexOf) { 
         index = jQuery.inArray(source.charAt(i), persianSort); 
        } else { 
         index = persianSort.indexOf(source.charAt(i)); 
        } 
        if (index < 0) { 
         index = source.charCodeAt(i); 
        } 
        if (index < 10) { 
         index = '0' + index; 
        } 
        result += '00' + index; 
       } 

       return 'a' + result; 
      } 
      jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
       "pstring-pre": function (a) { 
        return GetUniCode(a.toLowerCase()); 
       }, 

       "pstring-asc": function (a, b) { 
        return ((a < b) ? -1 : ((a > b) ? 1 : 0)); 
       }, 

       "pstring-desc": function (a, b) { 
        return ((a < b) ? 1 : ((a > b) ? -1 : 0)); 
       } 
      }); 

     </script> 
1

您在jquery.dataTables.min.js之前聲明persian.js文件。這是一個問題,因爲persian.js取決於jquery.dataTables.min.js

錯誤:

persian.js:45 Uncaught TypeError: Cannot read property 'oSort' of undefined 
    at persian.js:45 
    at persian.js:59 

正如你可以在網上看到45,

jQuery.extend(jQuery.fn.dataTableExt.oSort, { 

persian.js查找對象jQuery.fn.dataTableExt的財產oSort,但它不存在。

將數據表中的一個之後波斯文件:

<script type="text/javascript" src="jquery.dataTables.min.js"></script> 
<script type="text/javascript" src="persian.js"></script> 

Here is a Fiddle

+0

我改變了它,但它仍然不起作用! – mhtb

+0

我已經添加了小提琴。讓我知道如果這不是預期的結果。 –

+0

實際上客戶端可以選擇排序,在小提琴中它只是下降,客戶端不能通過選擇表頭中的每個列主題來改變排序。 – mhtb

相關問題