数据表+ lengthMenu +所有+服务器端处理+不工作(datatables + length

2019-09-29 17:12发布

这是一个基本的数据表小提琴。 这是默认和下拉菜单将显示follwoing Show options 10, 25, 50, 75 and 100 records:

现在我想获得工作是"lengthMenu": [ [10, 25, 50, -1], [10, 25, 50, "All"] ]我可以在这个小提琴 。 但如果我使用服务器端的处理,这是在All选项不会为我工作。 其他人做。 当我选择All它dispalys它被显示数据和在底部说, No data found in the server

据我所知,唯一的区别是数据来自服务器。 任何人都可以告诉我怎么能麻烦拍出这样? 至于当我选择我可以告诉All我送length:-110length:10所以不知道为什么All不工作

        $(document).ready(function() {
            var dataTable = $('#employee-grid').DataTable( {
                "lengthMenu" : [[ 10, 25, 50, -1 ],[ '10', '25', '50', 'All' ]],
                //"pageLength": 25,
                "processing": true,
                "serverSide": true,
                "ajax":{
                    url :"employee-grid-data.php", // json datasource
                    type: "post",  // method  , by default get
                    error: function(){  // error handling
                        $(".employee-grid-error").html("");
                        $("#employee-grid").append('<tbody class="employee-grid-error"><tr><th colspan="3">No data found in the server</th></tr></tbody>');
                        $("#employee-grid_processing").css("display","none");

                    }
                }                   
            } );
        } );


Answer 1:

当使用服务器端处理,您应该忽略的startlength请求参数length参数为-1 ,以便返回所有记录在你的PHP脚本。



Answer 2:

“lengthMenu”:[[10,25,50,-1],[10,25,50, “所有”]]

1)表示“ALL”被分配的值为-1。

2)这就是为什么当u选择所有您所传送长度的原因:-1和10是长度:10

3)这就是为什么你还没有得到在服务器中的数据的原因-错误

4)适当这个给这个在您的控制器

VAR长度= Request.Form.GetValues( “长度”)。FirstOrDefault()== “-1”? Convert.ToString(YOUR_LIST.Count()):Request.Form.GetValues( “长度”)FirstOrDefault();

5),这将告诉我们,如果长度== -1,那么把你的名单总数量,使得它显示的所有行。



文章来源: datatables + lengthMenu + All + serverside processing + not working