[lưu ý: các câu trả lời sau đây là dành cho DataTables 1.9x và dưới đây. 1.10 đã thay đổi quy ước đặt tên phương thức và một số thứ khác. Các phương pháp 1.9x có sẵn nhưng không được chấp nhận và chắc chắn sẽ bị loại bỏ hoàn toàn.]
Nếu an toàn để tách chúng "bán buôn" (ví dụ: nếu bạn tạo ra một hàm chuỗi thoát không ảnh hưởng đến giá trị của JSON), bạn có thể làm điều đó bằng cách sử dụng chức năng fnServerData:
"fnServerData": function (sSource, aoData, fnCallback) {
$.ajax({
"dataType": 'json',
"type": "GET",
"url": sSource,
"data": aoData,
"success": function (data) {
// run your escape string function to modify 'data'
fnCallback(data); // or fnCallback(newData) if you used new variable
}
});
}
Nếu bạn không chắc chắn về sự an toàn của sửa đổi nó bán buôn, bạn có thể làm điều đó trên một cơ sở hàng-by-hàng với fnRowCallback:
"fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
var cellData = myEscaper(aData[0]); // where myEscaper() is your own custom function
$('td:eq(0)').text(cellData);
return nRow;
}
Trong mẫu này, tôi chỉ sửa đổi ô đầu tiên. Nếu nó có thể áp dụng cho tất cả các ô, bạn có thể muốn viết một trình lặp sẽ đi qua toàn bộ hàng để thực hiện chuyển đổi. Nếu nó chỉ áp dụng cho một số ô, bạn có thể xử lý chúng một lần.
Lưu ý rằng aData [0] và td: eq (0) chỉ tình cờ có cùng chỉ mục (0). Nếu bạn có bất kỳ cột bị ẩn nào, sẽ không nhất thiết phải là một kết quả phù hợp. Ngoài ra, nếu bạn sử dụng mDataProp, bạn sẽ cần phải xử lý đó là tốt.
Nguồn
2011-10-13 16:08:24
Hãy thử kỹ thuật này: http://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery – rcravens