2012-09-07 59 views
8

Tôi có dữ liệu jquery trên trang của mình, sử dụng xử lý bên máy chủ để truy xuất dữ liệu. Trong trường hợp này, một trong những cột chứa nội dung html, do đó phản ứng máy chủ của tôi trông như thế này:jQuery Datatables hiển thị nội dung html

"aaData": [ [1, "aaa", "<span class="myclass">html here</span>" ], ... 

Tôi tryed với

"aoColumnDefs": [ "aTargets":[2], "sType": "html" } 

Nhưng tôi vẫn thấy nội dung di động như thể nó là đồng bằng chuỗi. Tôi có thể làm gì?

Trả lời

5

Made một phiên bản làm việc với

"aoColumnDefs": [ 
    { "aTargets": [2], 
     "sType": "html", 
     "fnRender": function(o, val) { 
      return $("<div/>").html(o.aData[2]).text(); 
     } 
    } 
] 

giải mã phía sau html với jQuery.

0
var renderAsHtml = function (data, type, full) { 
return decHTMLifEnc(data); 
}; 
var isEncHTML = function(str) { 
    if(str.search(/&amp;/g) != -1 || str.search(/&lt;/g) != -1 || str.search(/&gt;/g) != -1) 
     return true; 
    else 
     return false; 
}; 

var decHTMLifEnc = function(str){ 
    if(isEncHTML(str)) 
     return str.replace(/&amp;/g, '&').replace(/&lt;/g, '<').replace(/&gt;/g, '>'); 
    return str; 
} 

trả về kết xuấtAsHtml làm hàm tham chiếu đến fnRender. Đây cũng là việc

0

Đây là cách tôi làm cho các thẻ HTML trong các cột DataTable của tôi:

ajax: "getData?userobjid=<%=session.getAttribute("userobjectid")%>&alpha=&selectsuppliersflag="+selectsuppliersflag, 
columns: [ 
      { data: null, render: function (data, type, row) { 
       if(data.storeFrontUrl == 'undefined' || data.storeFrontUrl==null){ 
         return "<label>"+data.companyName+"</label>"; 
         } 
         else{ 
         return "<a href='JavaScript:newPopup(\"directorylist/view/"+data.storeFrontUrl+"\");'>"+data.companyName+"</a>"; 
        } 
        }}, 
2

tôi cập nhật câu trả lời SamuGG của, cho phiên bản DataTable mới:

"aoColumnDefs": [ { 
        "aTargets": [ 5 ], 
        "mRender": function (data, type, full) { 
         return $("<div/>").html(data).text(); 
         } 
      } ] 
Các vấn đề liên quan