数据表搜索不能处理ajax调用数据

时间:2016-05-27 11:44:10

标签: ajax datatable

我有一个jsp clientprice.jsp,其中有一个数据表,其中数据通过ajax调用动态地加载到选择框上。数据显示在数据表中,但搜索不起作用。 我在这里包含了我的jsp以及ajax代码 -

function getTestsByClient(clientId,tableId) {
$.ajax({
    url : "/corelims/rest/data/get/tests/by/client/" + clientId,
    type : 'GET',
    dataType : "json",
    complete : function(data, textStatus, $XHR) {
        afterAjaxCall($XHR,textStatus);
        arrayData = JSON.parse(data.responseText);
        htmltd = "";
        var i=0;

        var carr = ["class1","class2","class3","class4","class5","class6"];

        for (var i = 0; i < arrayData.length; i++) {

            jsonObj = arrayData[i];
            htmltd+="<tr id='tr"+i+"' class='' >";

        var j = 0;
        var v = "tr"+i;
        var func = "activateTestPriceChangeClass('"+v+"')";
        for ( var key in jsonObj) {
            if(j<3){
                htmltd += "<td  id=td"+(i)+" class='core-td'><input type='text' class='core-input "+carr[j-1]+"' id="+key+(i)+" name="+key+(i)+" value="+jsonObj[key]+" onchange="+func+" readonly='readonly'></td>";
            }
            else{
                htmltd += "<td  id=td"+(i)+" class='core-td'><input type='text' class='core-input "+carr[j-1]+"' id="+key+(i)+" name="+key+(i)+" value="+jsonObj[key]+" onchange="+func+" ></td>";
            }
            j++;
        }
        i+1;
        htmltd+='</tr>'
        }
        $("#"+tableId).html(htmltd);
    }
});
 }

html代码 -

 <table cellpadding="0" cellspacing="0" border="0" class="table table-striped table-bordered datatables" id="client_price">
                            <thead>
                                <tr>
                                    <th>Test Code</th>
                                    <th>Test Name</th>
                                    <th>CORE MRP</th>
                                    <th>Top Level Discount</th>
                                    <th>MRP Discount</th>
                                    <th>Net Amount</th>
                                </tr>
                            </thead>
                            <tbody id ="testBody">
                                <tr class="odd gradeX">
                                    <td></td>
                                    <td></td>
                                    <td></td>
                                    <td></td>
                                    <td></td>
                                    <td></td>
                                </tr>
                            </tbody> 
                        </table>

1 个答案:

答案 0 :(得分:1)

function getTestsByClient(clientId,tableId) {
$.ajax({
    url : "/corelims/rest/data/get/tests/by/client/" + clientId,
    type : 'GET',
    dataType : "json",
    complete : function(data, textStatus, $XHR) {
    afterAjaxCall($XHR,textStatus);
    arrayData = JSON.parse(data.responseText);
    htmltd = "";
    var i=0;

    var carr = ["class1","class2","class3","class4","class5","class6"];
    htmltd+='<table cellpadding="0" cellspacing="0" border="0" class="table table-striped table-bordered datatables" id="'+tableId+'">
                        <thead>
                            <tr>
                                <th>Test Code</th>
                                <th>Test Name</th>
                                <th>CORE MRP</th>
                                <th>Top Level Discount</th>
                                <th>MRP Discount</th>
                                <th>Net Amount</th>
                            </tr>
                        </thead>
                        <tbody id ="testBody">';
    for (var i = 0; i < arrayData.length; i++) {

        jsonObj = arrayData[i];
        htmltd+="<tr id='tr"+i+"' class='' >";

        var j = 0;
        var v = "tr"+i;
        var func = "activateTestPriceChangeClass('"+v+"')";
        for ( var key in jsonObj) {
            if(j<3){
                htmltd += "<td  id=td"+(i)+" class='core-td'><input type='text' class='core-input "+carr[j-1]+"' id="+key+(i)+" name="+key+(i)+" value="+jsonObj[key]+" onchange="+func+" readonly='readonly'></td>";
            }
            else{
               htmltd += "<td  id=td"+(i)+" class='core-td'><input type='text' class='core-input "+carr[j-1]+"' id="+key+(i)+" name="+key+(i)+" value="+jsonObj[key]+" onchange="+func+" ></td>";
           }
           j++;
       }
       i+1;
       htmltd+='</tr>'
    }
     htmltd+='</tbody> </table>'
    $("#divtable").html(htmltd);
    $("#"+tableId).DataTable();
   }
 });
 }

html代码:

     '<div id="divtable">
<table cellpadding="0" cellspacing="0" border="0" class="table table-striped table-bordered datatables" id="client_price">
                        <thead>
                            <tr>
                                <th>Test Code</th>
                                <th>Test Name</th>
                                <th>CORE MRP</th>
                                <th>Top Level Discount</th>
                                <th>MRP Discount</th>
                                <th>Net Amount</th>
                            </tr>
                        </thead>
                        <tbody id ="testBody">
                            <tr class="odd gradeX">
                                <td></td>
                                <td></td>
                                <td></td>
                                <td></td>
                                <td></td>
                                <td></td>
                            </tr>
                        </tbody> 
                    </table>
        </div>'