在jQuery Datatables和Server Side数据处理中使用多行THEAD

时间:2012-11-21 14:15:47

标签: jquery datatables

我正在使用jquery Datatables插件(http://www.datatables.net),需要显示许多列(75+)和一些< 50行。为了使用户更容易,我使用了精彩的插件FixedColumns。 我没有使用任何分页和排序(这将使这个更慢和最多50行的分页是不是真的需要)

在IE9中,表的呈现速度太慢(> 7secs),所以现在我使用PHP的JSON数据检索数据服务器端。这加快了速度,但现在我遇到了问题。 我的表头有两行,第一行有一个colspan,第二行有列数作为数据。

不知怎的,我不能以这种方式在表中使用THEAD,而“aoColumns”参数看起来不像它支持多行列。有人知道如何使用多行THEAD(包括colspan)和使用ajax来获取数据吗?

我正在使用此代码构建表。

          var defaultOptions =  {
                "sScrollX": "100%",
                "bScrollCollapse": false,
                "sHeightMatch": "none",
                "bPaginate": false,
                "bLengthChange": false,
                "bSortClasses": false,
                "bSort":false,
                "bFilter": false,
                "bSort": false,
                "bInfo": false,
                "bAutoWidth": false,
                "bServerSide": false,
                "bProcessing":true,
                "bDeferRender": false,
                "sAjaxSource": "/leerkracht/controle_data.php",
                "fnServerParams": function ( aoData ) {
                      aoData.push( { "name":"groep", "value":"56"} );
                }, 
                "oLanguage": {
                         "sProcessing": "<div style='margin-top:7px;margin-bottom:7px;'><img src='/images/ajax-loader.gif' style='margin-right:7px;'/>Bezig met ophalen scores...</div>",    "sLengthMenu": "_MENU_ resultaten weergeven",    "sZeroRecords": "Geen resultaten gevonden",    "sInfo": "_START_ tot _END_ van _TOTAL_ resultaten",    "sInfoEmpty": "Geen resultaten om weer te geven",    "sInfoFiltered": " (gefilterd uit _MAX_ resultaten)",    "sInfoPostFix": "",    "sSearch": "Zoeken:",    "sEmptyTable": "Geen resultaten aanwezig in de tabel",    "sInfoThousands": ".",    "sLoadingRecords": "Een moment geduld aub - bezig met laden...",    "oPaginate": {        "sFirst": "Eerste",        "sLast": "Laatste",        "sNext": "Volgende",        "sPrevious": "Vorige"    }
                }

            }

        var oTable = $('#controleTable').dataTable(defaultOptions );
        new FixedColumns( oTable );

我真的希望有一个像Scroller这样的插件可以横向滚动(在滚动后执行ajax调用并重新绘制'新'列和'新数据)...

1 个答案:

答案 0 :(得分:0)

由于性能不佳,我离开了jQuery Datatables。我决定使用Dojo网格并解决了我的问题。它也快得多。