【问题标题】:Cannot read property 'reload' of undefined无法读取未定义的属性“重新加载”
【发布时间】:2018-12-20 14:45:59
【问题描述】:

我有一个 ajax 调用,它返回一个数据列表,但是我在刷新我的表格时遇到了一些麻烦,我知道它们已经是关于这个主题的很多主题,我阅读了所有这些主题,但我没有找到解决方案。 这是我的 Jquery:

<script>
    $(document).on("change", "#process", function() {  
    var process=$('#process').val();
    var lignes=$('#lignes').val();
    $.ajax({
        type:'POST',
        url : "/tps_assy-web/equilibrageReloadTableOperation",
        data:{lignes: lignes, process: process},
        success: function(json){  
            $('#tableAvant').ajax.reload(null, false);
        }
    }); 
});
</script>

我的桌子是:

<table id="tableAvant" class="table table-bordered table-condensed table-hover">
 <tr>
     <th class="text-center "><div class="rotate ">Ordre</div></th>
     <th class="text-center "><div class="rotate ">Nom Pross</div></th>
     <th class="text-center "><div class="rotate ">Verbe</div></th>
     <th class="text-center "><div class="rotate ">Nom Op</div></th>
     <th class="text-center "><div class="rotate ">Mini</div></th>
     <th class="text-center "><div class="rotate ">Maxi</div></th>
     <th class="text-center "><div class="rotate ">Tps Total</div></th>
     <th class="text-center "><div class="rotate ">Tps Mesure</div></th>
     <th class="text-center "><div class="rotate ">Tps Retour</div></th>
     <th class="text-center "><div class="rotate ">TDA</div></th>
     <th class="text-center "><div class="rotate ">% Opera</div></th>
     <th class="text-center "><div class="rotate ">Loc Avant</div></th>
</tr>
<tbody>
 <tr th:each="LIST : ${LigneAvant}">
    <td  th:text="${LIST[0]}" ></td>
    <td th:text="${LIST[1]}" ></td>
    <td  th:text="${LIST[2]}" ></td>
    <td th:text="${LIST[3]}" ></td> 
    <td  th:text="${LIST[4]}" ></td>
    <td class="ellipsis" th:text="${LIST[5]}" ></td>
    <td class="ellipsis" th:text="${LIST[6]}" ></td>    
    <td  class="ellipsis" th:text="${LIST[7]}" ></td>
    <td  class="ellipsis" th:text="${LIST[8]}" ></td>
    <td  class="ellipsis" th:text="${LIST[9]}" ></td>
    <td class="ellipsis" th:text="${LIST[14]}" ></td>
    <td class="ellipsis" th:text="${LIST[15]}" ></td>   
     </tr>
     </tbody>
 </table>

我只需要这句话的帮助:

$('#tableAvant').ajax.reload(null, false);

我已经尝试过了:

$('#tableAvant').dataTable( ).api().ajax.reload();

$('#tableAvant').DataTable( ).api().ajax.reload();

但这并不成功......

【问题讨论】:

  • 你是否包含了datatables js文件?
  • 嗯不,我没有,我会包含它,如果成功我会通知你
  • 它是JQuery的插件,不是原生的,所以ajax会是未定义的,因此会重新加载未定义的
  • 好吧,它不会改变任何东西,因为我已经在我的标题中包含了 jquery,无论如何谢谢!
  • 不包含jquery,还需要包含DataTables:datatables.net

标签: jquery html ajax jakarta-ee refresh


【解决方案1】:

我不熟悉这种 AJAX 的使用类型,但在网上快速浏览了一下,我想我可能有问题。看起来 .ajax.reload() 只能在 DataTable 对象上调用,而您的示例只是在元素上调用。

我怀疑您与 $('#tableAvant').DataTable().ajax.reload(null, false); 关系密切,但请尝试将 { ajax: "data.json" } 传递给 DataTable 对象。

例如: $('#tableAvant').DataTable({ajax: "data.json"}).ajax.reload(null, false);

【讨论】:

  • 我试过了,我还有另一个错误:“无法读取未定义的属性'mData'”
  • 好的,我知道为什么会出现此错误,这是因为我的第二个包含错误。我会尝试删除它并重试
【解决方案2】:

好吧,我的错误是没有包含

<script th:src="@{/js/datatables.min.js}"></script>

另外,我的表格格式不正确,要使用此脚本,您需要有一个如下所示的表格:

<table id="exemple">
    <thead>
        <tr>
            <th>title-1</th>
            <th>title-2</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>data-1</td>
            <td>data-2</td>
        </tr>
    </tbody>
</table>

感谢大家的帮助,不胜感激:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-28
    • 2019-09-07
    • 2021-10-12
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 2017-10-28
    • 2019-02-19
    相关资源
    最近更新 更多