Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 控制何时在数据表的服务器端处理中填充AD和tbody_Jquery_Datatables - Fatal编程技术网

Jquery 控制何时在数据表的服务器端处理中填充AD和tbody

Jquery 控制何时在数据表的服务器端处理中填充AD和tbody,jquery,datatables,Jquery,Datatables,我使用DataTables插件使用ajax调用获取和分页我的表。 我的要求是,我只需要对已获取的进行排序,即在服务器端获取时进行客户端排序 为了实现这一点,我将使用tablesorter和dataTables插件。我的代码看起来像这样- $("#ProposalSearchResults").html('<table cellpadding="0" id="proposalsTable" cellspacing="0" border="1 px" class="dataTable tabl

我使用DataTables插件使用ajax调用获取和分页我的表。 我的要求是,我只需要对已获取的进行排序,即在服务器端获取时进行客户端排序

为了实现这一点,我将使用tablesorter和dataTables插件。我的代码看起来像这样-

$("#ProposalSearchResults").html('<table cellpadding="0" id="proposalsTable" cellspacing="0" border="1 px" class="dataTable tablesorter">');
        $("#proposalsTable").tablesorter();
        $("#proposalsTable").dataTable({
            "bPaginate": true,
            "bJQueryUI": true,
            "bLengthChange": false,
            "bFilter": false,
            "bSort": false,
            "bInfo": true,
            "bAutoWidth": false,
            "bServerSide":true,
            "iDisplayLength": 10,
            "bProcessing": true,
            "sPaginationType": "full_numbers",
            "aoColumns": [
                            {"sTitle" : "Proposal Id"},
                            {"sTitle" : "Release Candidate Id"},
                            {"sTitle" : "Proposal Description"},
                            {"sTitle" : "Application"},
                            {"sTitle" : "Requester"},
                            {"sTitle" : "Proposal Status"},
                            {"sTitle" : "Proposal Creation Date", "sType": "full_date" },
                            {"sTitle" : "Proposal Planned Deployment Date", "sType": "full_date" },
                            {"sTitle" : "Action"}
                        ],
            "sAjaxSource": "/searchProposals",
            "fnServerData": function(sSource, aoData, fnCallback){
                aoData.push({"name" : "searchCriteria", "value" : JSON.stringify(proposalSearchCriteria)});

                $.ajax({
                    "dataType": "json",
                    "type" : "GET",
                    "url" : sSource,
                    "data" : aoData,
                    "success" : function (serviceOutput){
                        fnCallback(serviceOutput.ret);
                        $("#proposalsTable").trigger("update");
                    }
                });
           }
        });
$(“#ProposalSearchResults”).html(“”);
$(“#proposalsTable”).tablesorter();
$(“#proposalsTable”).dataTable({
“bPaginate”:对,
“bJQueryUI”:没错,
“bLengthChange”:false,
“bFilter”:错误,
“bSort”:错误,
“宾福”:没错,
“bAutoWidth”:假,
“bServerSide”:正确,
“iDisplayLength”:10,
“bProcessing”:正确,
“sPaginationType”:“完整编号”,
“aoColumns”:[
{“缝合”:“提案Id”},
{“sTitle”:“发布候选Id”},
{“缝合”:“提案说明”},
{“缝合”:“应用程序”},
{“缝合”:“请求者”},
{“缝合”:“提案状态”},
{“缝合”:“提案创建日期”,“缝合”:“完整日期”},
{“Style”:“提案计划部署日期”,“sType”:“完整日期”},
{“缝合”:“操作”}
],
“sAjaxSource”:“/SearchPropositions”,
“fnServerData”:函数(sSource、aoData、fnServerData回调){
推送({“名称”:“搜索条件”,“值”:JSON.stringify(proposalSearchCriteria)});
$.ajax({
“数据类型”:“json”,
“类型”:“获取”,
“url”:sSource,
“数据”:aoData,
“成功”:功能(serviceOutput){
fnCallback(serviceOutput.ret);
$(“#proposalsTable”).trigger(“更新”);
}
});
}
});
现在这里的问题是,因为在开始时,表的thead和tbody没有形成,对tablesorter()的调用返回,客户端排序没有实现。 然而,当我先创建thead和tbody,然后通过ajax填充它时,它也会起作用。 我无法解码dataTables的代码,因此不知道是哪个方法在表中实际绘制/写入这些tbodies和thead,可以重写这些方法,以便在表中调用tablesorter

有人能帮帮我吗

您应该调用
$(“#proposalsTable”).tablesorter()。通过这种方式,datatables创建了
和所有
部分(所有正确的标记等),您可以在这些部分上附加tablesorter事件。 如果您这样做,则没有可附加事件的
,因此
tablesorter()
会失败。请记住,您只能将事件附加到DOM中已有的元素(好的,有一些方法也可以附加到DOM准备就绪后添加的元素,如jQuery live(),但我不认为tablesorter使用它们),在这种情况下,datatables为表创建标记。

您应该调用
$(“#proposalsTable”).tablesorter()。通过这种方式,datatables创建了
和所有
部分(所有正确的标记等),您可以在这些部分上附加tablesorter事件。
如果您这样做,则没有可附加事件的
,因此
tablesorter()
会失败。请记住,您只能将事件附加到DOM中已有的元素(好的,有一些方法也可以附加到DOM准备就绪后添加的元素,如jQuery live(),但我不认为tablesorter使用它们),在这种情况下,datatables为表创建标记。

您是否尝试调用
$(“#proposalsTable”).tablesorter()初始化数据表之后?这很有效。你能解释一下原因吗?我写了一个答案,简短地解释了我的想法。简单地说,当您调用tablesorters时,没有要附加事件的
,您必须通过调用
datatables()来创建它们
您是否尝试调用
$(“#proposalsTable”).tablesorter()初始化数据表之后?这很有效。你能解释一下原因吗?我写了一个答案,简短地解释了我的想法。简单地说,当您调用tablesorters时,没有要附加事件的
,您必须通过调用
datatables()来创建它们