我有一个jQuery dataTable编码如下:
$("#my-datatable").dataTable( {
"bProcessing" : true,
// Commenting out next line
//"sDom" : 't',
"sAjaxSource" : "some/url/on/my/server",
"sAjaxDataProp" : "",
"bDestroy" : true,
"fnServerData" : function(sSource, aoData, fnCallback) {
aoData.push({
"name" : "asking",
"value" : "yes"
});
request = $.ajax({
"dataType" : "json",
"type" : "GET",
"url" : sSource,
"data" : aoData,
"success" : fnCallback
});
},
"aoColumns" : [
{
"mDataProp" : "name"
},
{
"mDataProp" : "expr"
},
{
"mDataProp" : "seq"
}
]
});
注意注释掉的行。当此代码按原样运行时,表格呈现精美。不幸的是,它显示了很多我不想要显示的内容,例如分页信息,搜索栏等。
在阅读完文档并按照示例后,我确信已注释掉的行是我需要配置dataTable以便只有表本身呈现/显示。
但是,当我发表评论时,我在Firebug中收到错误,并且没有数据填充我的表格:
TypeError: an is undefined
[Break On This Error]
for ( var i=0, iLen=an.length ; i<iLen ; i++ )
似乎也在抱怨jQuery.dataTables.js
第2895行。有人能说出为什么会发生这种情况吗?我的sDom
属性配置不正确吗?请记住,我只想绘制表格及其标题(以及其中的所有数据)。提前谢谢!
答案 0 :(得分:3)
设置"bProcessing": true
时,您必须确保在'r'
内定义sDom
,否则将生成错误。
示例:
var oTable = $('#example').dataTable( {
"bProcessing": true,
"iDisplayLength": 10,
"bLengthChange": false,
"bFilter": false,
"aoColumnDefs": [{ "bSortable": false, "aTargets": [ 0, 4, 5 ] }],
"sDom": "t<'row-fluid'<'span4'i><'span8'pP>r>",
"sPaginationType": "bootstrap",
"oLanguage": { "sLengthMenu": "_MENU_ records per page" }
});
答案 1 :(得分:1)
我认为你所追求的是这个或许
http://datatables.net/examples/basic_init/filter_only.html
你可以保留sDom:T(默认值)并手动关闭所有内容
"bPaginate": false,
"bLengthChange": false,
"bFilter": true,
"bSort": false,
"bInfo": false,
"bAutoWidth": false