【问题标题】:Jquery Datatable null columnJquery Datatable 空列
【发布时间】:2016-11-08 09:30:00
【问题描述】:

您好,我已经使用下面的代码创建了 jquery 数据表..

电子邮件 ID 和激活日期列可以为空。当我渲染表格时,它显示“从第 0 行的数据源请求未知参数'电子邮件'”

 var tblAllKeys = $('#tblAllKeys').dataTable({
                    "bDestroy" : true,
                    "bProcessing" : true,
                    "bServerSide" : true,
                    "bLenthChange" : false,
                    "iDisplayLength" : 10,
                    "sAjaxSource" : "loadAllKeys",
                    "oLanguage" : {
                        "sSearch" : "Search By Activation Key:"
                    },
                    "aoColumns" : [
                     {"sTitle" : "No.","mData" : null,"aTargets": [ 0 ],
                        "fnRender" : function(obj) {
                            var columnIndex = obj.oSettings._iDisplayStart + obj.iDataRow+1
                            return columnIndex;
                        }
                    },
                    {"sTitle" : "Activation Key","mData" : "key", "bSearchable" : true},
                    {"sTitle" : "Email ID","mData" :  "email" , "bSearchable" : false},
                    {"sTitle" : "App Edition","mData" : "edition", "bSearchable" : false},
                    {"sTitle" : "Batch Code","mData" : "batch", "bSearchable" : false},
                    {"sTitle" : "Activated Date","mData" : "aDate" , "bSearchable" : false},
                    {"sTitle" : "Generated Date","mData" : "gDate", "bSearchable" : false},
                    {"sTitle" : "Status","mData" : "status", "bSearchable" : false},
                    ],
                       "fnServerData" : function(sSource, aoData, fnCallback) {
                        $.ajax({
                         "dataType" : 'json',
                         "type" : "GET",
                         "url" : sSource,
                         "data" : aoData,
                         "success" : fnCallback
                        });
                       },
                       "sPaginationType" : "full_numbers",
                });

【问题讨论】:

  • nullable 或者列本身不存在?
  • 不存在列。只有值是空

标签: jquery datatables


【解决方案1】:

您可以根据他们的 docs on this error 使用 columns.defaultContent 选项,在列没有任何值时显示默认值或空字符串。

"aoColumns": [{
  "sTitle": "No.",
  "mData": null,
  "aTargets": [0],
  "fnRender": function(obj) {
    var columnIndex = obj.oSettings._iDisplayStart + obj.iDataRow + 1
    return columnIndex;
  }
}, {
  "sTitle": "Activation Key",
  "mData": "key",
  "bSearchable": true
}, {
  "sTitle": "Email ID",
  "defaultContent":"",//or specify any other value
  "mData": "email",
  "bSearchable": false
}, {
  "sTitle": "App Edition",
  "mData": "edition",
  "bSearchable": false
}, {
  "sTitle": "Batch Code",
  "mData": "batch",
  "bSearchable": false
}, {
  "sTitle": "Activated Date",
  "mData": "aDate",
  "bSearchable": false
}, {
  "sTitle": "Generated Date",
  "mData": "gDate",
  "bSearchable": false
}, {
  "sTitle": "Status",
  "mData": "status",
  "bSearchable": false
}, ],

如果您确定column 中的任何一个可能为空,则最好将defaultContent 选项分配给所有列。

【讨论】:

  • 您可以尝试在此处使用示例数据复制它吗?
  • 你的意思是服务器的响应吗?
  • {"iTotalRecords":0,"iTotalDisplayRecords":0,"sEcho":2,"aaData":[{"key":"JPBFTU3Q1MOY","edition":"Professional Edition","batch":"PROMOTIONAL TRIAL KEYS 1","gDate":"05/11/2016","status":"Unsubscribed"}]}
  • 您的aaData 不包含email id 列?
  • 我想我知道问题出在哪里。我没有从服务器发送电子邮件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 2021-01-22
  • 1970-01-01
相关资源
最近更新 更多