如何在服务器端DataTable中显示Base64图像?

时间:2018-01-18 11:19:14

标签: javascript jquery datatables

这是我的服务器端数据HTML,用于将数据加载到数据表中,从控制器获取数据

<script type="text/template" id="tablescript">
  <td><%=Name%></td>
  <td><%=PhoneNumber%></td>
  <td><%=CNIC%></td>
  <td><%=So%></td>
  <td><%=Thumb%></td>
  <td><%=Image%></td>
  <td><%=NomineeImage%></td>
  <td>
    <i class="fa fa-pencil-square-o" aria-hidden="true" onclick="editMember('<%= Id%>')" style="cursor:pointer;font-size: 20px;"></i>
    <span class="fa fa-trash" aria-hidden="true" style="cursor:pointer;color:red;font-size: 20px;" onclick="deleteMember('<%= Id%>')"></span>
    <span class="fa fa-ban" aria-hidden="true" style="cursor:pointer;color:red;font-size: 20px;" onclick="blockMember('<%= Id%>')"></span>
    <span class="fa fa-check" aria-hidden="true" style="cursor:pointer;color:green;font-size: 20px;" onclick="activeMember('<%= Id%>')"></span>
  </td>
</script>

<table class="table table-hover table-bordered table-striped" id="tblloaddata"></table>

Ajax请求转到mvc控制器并获取列表加载到模型但不显示我的数据表。

var table;
var loadtable = function () {
var getUrl = $("#hidLoadMembersUrl").val();
var tmpl = _.template($("#tablescript").html());

table = $("#tblloaddata").DataTable({
  "processing": true,
  "serverSide": true,
  "ajax": {
    url: getUrl,
    type: "POST"
  },
  "columns": [
    { "data": "Name", "title": "Name" },
    { "data": "PhoneNumber", "title": "PhoneNumber" },
    { "data": "CNIC", "title": "CNIC" },
    { "data": "So", "title": "SoDoWoName" },
    { "data": "Thumb", "title": "Thumb" },
    { "data": "Image", "title": "Image" },
    { "data": "NomineeImage", "title": "NomineeImage" },
    { "data": null, "title": "Action", "orderable": "false" },
  ],
  "rowCallback": function (row, data) {
    console.log(data);
    $(row).html(tmpl(data));
  }
});

};

1 个答案:

答案 0 :(得分:1)

您应该使用render属性来显示图像;

table = $("#tblloaddata").DataTable({
  "processing": true,
  "serverSide": true,
  "ajax": {
    url: getUrl,
    type: "POST"
  },
  "columns": [
    { "data": "Name", "title": "Name" },
    { "data": "PhoneNumber", "title": "PhoneNumber" },
    { "data": "CNIC", "title": "CNIC" },
    { "data": "So", "title": "SoDoWoName" },
    { "data": "Thumb", "title": "Thumb" },
    { "data": "Image", "title": "Image", render : function (data, type, full, meta) 
                                         { return '<img src="'+data.Image+'"/>'; }
    },
    { "data": "NomineeImage", "title": "NomineeImage" },
    { "data": null, "title": "Action", "orderable": "false" },
  ],
  "rowCallback": function (row, data) {
    console.log(data);
    $(row).html(tmpl(data));
  }
});