在渲染

时间:2016-07-23 20:30:33

标签: datatables

我在下面有defide的服务器端分页数据,它工作正常但事情是;其中一个字段包含太长所以我需要设置一个详细信息按钮而不是它,当它点击弹出显示并查看数据时描述。

我尝试将success:function(aaData){..}添加到a​​jax但是它会破坏数据表的任何建议吗?我不想在控制器中编辑模型我在浏览器中有数据,所以我想在这里处理..

 $(document).ready(function () {
        var table = $('#dtBooks').DataTable({
            "processing": true,
            "serverSide": true,
            "filter": false,
            "orderMulti": false,
            "ajax": {
                "url": "@Url.Action("GetBooks", "Home")",
                "type": "POST",
                "datatype": "json"

            },

            "columns": [
                { "data": "Title", "name": "Title", "autoWidth": true },
                { "data": "Publisher", "name": "Publisher", "autoWidth": true },
                { "data": "Description", "name": "Description", "autoWidth": true },
                { "data": "Authors", "name": "Authors", "autoWidth": true },
            ]
    });
    });

这是该模型对数据表的模型定义控制器响应列表。

public class Book 
    {
        public string Title { get; set; }
        public string Publisher { get; set; }
        public string Description { get; set; }
        public string[] Authors { get; set; }
    }

1 个答案:

答案 0 :(得分:1)

您可以使用ajax.dataSrc选项来操纵从服务器返回的数据。

例如:

$('#example').DataTable( {
  "ajax": {
    "url": "data.json",
    "dataSrc": function ( json ) {
      for ( var i=0, ien=json.data.length ; i<ien ; i++ ) {
        json.data[i][0] = '<a href="/message/'+json.data[i][0]+'>View message</a>';
      }
      return json.data;
    }
  }
});