2

我有一个像这样编码的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属性配置不正确吗?请记住,我只想绘制表格及其标题(以及其中的所有数据)。提前致谢!

4

2 回答 2

3

When setting "bProcessing": true, you have to make sure the 'r' is defined inside the sDom, otherwise the error will be generated.

Example :

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"    }
});
于 2013-09-06T11:48:47.437 回答
1

我想你所追求的也许是这个

http://datatables.net/examples/basic_init/filter_only.html

你可以离开 sDom: T (默认)并手动关闭一切

            "bPaginate": false,
        "bLengthChange": false,
        "bFilter": true,
        "bSort": false,
        "bInfo": false,
        "bAutoWidth": false
于 2012-10-17T02:44:17.223 回答