Dưới đây là phân tích cú pháp tùy chỉnh của tôi:jQuery - TableSorter tùy chỉnh phân tích cú pháp không làm việc
$.tablesorter.addParser({
id: "customParser",
is: function (stringValue) {
return false;
},
format: function (stringValue) {
var stringValueParts = stringValue.split("-");
var numericPartOfStringValue = parseInt(stringValueParts[2]);
return numericPartOfStringValue ;
},
type: 'numeric'
});
stringValue sẽ có giá trị như:
- ABC-DE-1
- ABC-DE-10
- ABC-DE-100
- ABC-DE-101
- ABC-DE-1000
Đây là mã nơi tôi thiết lập các tablesorter và bổ sung phân tích cú pháp tùy chỉnh sắp xếp:
$(function() {
$("#dataTable").tablesorter({
headers: {
3: {
sorter: 'customParser'
}
}
});
});
tôi đã thêm một console.log (numericPartOfStringValue) và tất cả các con số được viết ra để giao diện điều khiển để có vẻ như trình phân tích cú pháp đang làm những gì cần làm.
Vì vậy, tôi muốn điều gì xảy ra?
Tôi muốn giá trị của tôi được sắp xếp trên một phần số của chuỗi như sau:
- ABC-DE-1
- ABC-DE-10
- ABC-DE-100
- ABC-DE-101
- ABC-DE-1000
Điều gì đang thực sự xảy ra?
Các giá trị đang được sắp xếp theo cách này:
- ABC-DE-1
- ABC-DE-10
- ABC-DE-100
- ABC-DE-1000
- ABC-DE-101
Tôi đã thử gì khác?
tôi đã thêm dòng sau vào html của tôi, nhưng nó đã không làm cho một sự khác biệt:
<th class="{sorter: 'CustomParser'}">
String Value Column
</th>
Và cuối cùng:
Dưới đây là một giá trị ví dụ từ các ô trong bảng:
<td>
<span class="badge">ABC-DE-1</span>
</td>
Bạn đang sử dụng DataTables hoặc tablesorter? Nếu bạn muốn tiếp tục sử dụng tablesorter, hãy thử [fork of tablesorter] của tôi (http://mottie.github.io/tablesorter/docs/) theo mặc định. Vì vậy, không cần cho một phân tích cú pháp đặc biệt trong trường hợp của bạn. – Mottie
Tôi đã sử dụng cả hai, datatables cho phân trang và tablesorter cho việc phân loại. Vấn đề là trình phân tích cú pháp bảng tùy chỉnh của tôi không hoạt động với phân trang có thể định lượng được. Tôi không biết tại sao tôi đã không sử dụng các datatables phân loại vì vậy tôi đã chuyển mã của tôi để sử dụng datatables phân loại ngay bây giờ. Tôi đã triển khai trình phân tích cú pháp tùy chỉnh trong datatables và mọi thứ hiện đang hoạt động. Vì vậy, câu hỏi này là dư thừa ngay bây giờ. Cảm ơn bạn đã xem. –