jQuery DataTables呈现列数据

Aus*_*tin 4 sorting jquery json datatables

我正在使用jQuery DataTables来显示来自JSON编码的PHP响应的信息.JSON响应包含对象"name"."name"包含"Full Name","Last Name","ID".我一直在用columns我想要的方式显示数据但是,我遇到了一个我无法弄清楚的问题.

在下面的代码中,示例1工作正常,并在按"姓氏"排序时显示"全名".但是,示例2根本不起作用.所需的输出将包含HTML呈现的显示并按"姓氏"排序.在示例3中,显示以我想要的方式呈现,但是没有正确排序.

有谁知道如何调整示例2输出我正在寻找的东西(渲染和排序数据)?

var oTable = $('#table').DataTable({
'ajax': {
    url: 'PHP-file-returns-JSON.php',
    type: "POST",
    dataSrc: function ( data ) {
            return data.cols;
        },       
    data: function(d) {

       ///send additional values to POST
       var frm_data = $('#val1, #val2').serializeArray();
       $.each(frm_data, function(key, val) {
             d[val.name] = val.value;
       });
     }
},
'columns':[

        // exapmle 1 - works but not rendered with HTML
        { data: {
                _:    "name.Full Name",
                sort: "name.Last Name",
                } 
        },

        // example 2 not working at all
        { data: 'name', "render": function ( data, type, row ) {
                return '<span id="'+data.ID+'">'+data.Full Name+'</span>';
            },
            "sort" : "name.Last Name",
        },

        // example 3 works fine with HTML rendered display but not sorted
        { data: 'name', "render": function ( data, type, row ) {
                return '<span id="'+data.ID+'">'+data.Full Name+'</span>';
            } 
        },
]
});
Run Code Online (Sandbox Code Playgroud)

更新:

是JSFiddle,它显示了我正在使用的数据结构.工作示例仅显示按姓氏排序的全名.我试图找出如何使显示包含ID为id属性的span元素.

Aus*_*tin 5

事实证明使用name.Full Name不起作用.它必须name.FullName没有空间.这是最终为我工作的东西.

  'columns': [
        { 
            "data": "name",                   
            "render": function ( data, type, row ) {
                if(type === 'display'){
                    return '<span id="'+data.ID+'">'+data.FullName+'</span>';
                }else if(type === 'sort'){
                    return data.LastName;
                }else{
                    return data;
                }
            }
        }
   ]
Run Code Online (Sandbox Code Playgroud)