0

我正在服务器端为 dataTable 实现排序(排序依据)。一切都很好即使我的数据得到了正确的排序(我可以在萤火虫中检查。)。现在的问题是,在那之后数据表没有重新加载,并且“处理...”继续出现。关于在哪里编写重新加载函数的任何线索。我知道这可以通过

 oTable.fnDraw(true);

但我不知道在点击标题进行排序后在哪里写。如果您需要任何代码片段来调试,请告诉我。

编辑1**

即使在使用全局搜索或更改 no 后,我也无法重新加载表。要显示的行数。知道为什么会这样吗???

var oTable = $('#datatable').dataTable( {
                "bProcessing": true,
                "bServerSide": true,
                "sAjaxSource": "datatableprocessor",
                "sPaginationType": "full_numbers",
                 "fnRowCallback": function (nRow, aData, iDisplayIndex) { return nRow; },
                "fnServerData": function ( sSource, aoData, rfrshCallbk ) {
                    $('.search').each(function(index) {
                        var name =  $(this).attr("name");
                        var tempName = name.replace("search","condition" );
                        var condition = $("[name='"+tempName+"']").val();
                        var value = $(this).val();
                        aoData.push({ "name": name, "value": value+""+condition });
                    });
                    aoData.push({ "name": "queryId", "value": "test" });
                    $.ajax( {
                            "dataType": 'json',
                            "type": "POST",
                            "url": sSource,
                            "data": aoData,
                            "success": rfrshCallbk

                    } );
                },
                "aoColumnDefs": [
                  { "sName": "c.id", "aTargets": [ 0 ] },
                  { "sName": "c.firstname", "aTargets": [ 1 ] },
                  { "sName": "c.lastname", "aTargets": [ 2 ] },
                  { "sName": "c.telephone", "aTargets": [ 3 ] }

                ]


            } );//

编辑 2 -----我试图检查 Json comming 是否正确,所以为了调试我将代码更改为

 "success": function(json){
        alert(JSON.stringify(json));
                    rfrshCallbk(json);
 }

在这两种情况下,当我重新加载我的页面或排序 json 字符串时是相同的.. ??!!?? 不知道怎么回事???!!!

4

2 回答 2

0

我得到了解决方案,我没有实现“sEcho”并且每次都将“sEcho”作为“1”发回,这使我无法获得刷新的列表。

于 2012-09-23T12:17:41.367 回答
0

要重新加载我们使用的 dataTable 数据

oTable.fnDraw();

不是 oTable.fnDraw(true); ,写在你执行点击事件的地方。

于 2012-09-21T12:16:00.813 回答