DataTables重新加载失败

问题描述 投票:0回答:1

我正在使用以下CDN版本的数据表(https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js)像这样加载到页面底部:

<script type="application/javascript"
            src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js">
 </script>
 <script type="text/javascript">
        $(document).ready(function() {
            // On page load: datatable
            var plugins_table=$('.plugins_table').DataTable({
                "ajax":"indexAjax.php?p=listPluginsforSite",
                "columns":[
                    {"data":"plugin_name"},
                    {"data":"plugin_site_version"},
                    {"data":"plugin_uptodate_status"},
                    {"data":"plugin_activate_choice"},
                    {"data":"plugin_install_choice"}
                ],
                "language": {
                processing: "Traitement en cours...",
                search: "Rechercher&nbsp;:",
                lengthMenu: "Afficher _MENU_ Plugins",
                info: "Affichage du Plugin _START_ &agrave; _END_ sur _TOTAL_ ",
                infoEmpty: "Affichage du Plugin 0 &agrave; 0 sur 0 ",
                infoFiltered: "(filtr&eacute; sur _MAX_ Plugins au total)",
                infoPostFix: "",
                loadingRecords: "Chargement en cours...",
                zeroRecords: "Aucun Plugins &agrave; afficher",
                emptyTable: "Aucune donnée disponible dans le tableau",
                paginate: {
                    first: "Premier",
                    previous: " Pr&eacute;c&eacute;dent",
                    next: "Suivant  ",
                    last: "Dernier"
                },
                aria: {
                    sortAscending: ": activer pour trier la colonne par ordre croissant",
                    sortDescending: ": activer pour trier la colonne par ordre décroissant"
                }
            },
                paging: true,
                autoWidth: false,
                responsive: true,
                pagingType: "full_numbers",
            });
        // This event is triggered by a button with class '.activate_state' on each row...
        $('#plugins_table tbody').on('click', '.activate_choice', function () {
            var plugin_id=$(this).data("id") ;
            var plugin_active_state=$(this).data("active-state");
            var request   = $.ajax({
                url:          'indexAjax.php?p=togglePluginActiveState',
                data:         {plugin_id:plugin_id,active_state:plugin_active_state},
                dataType:     'json',
                type:         'post'
            });
            request.done(function(response){
            if (response.result == 'success') {
                // Reload datable: NEITHER commented solutions work !
                //plugins_table.api().ajax.reload();
                //plugins_table.DataTable().ajax.reload();
            }
        });
        });
        });
    </script>

当我对页面进行“手动”重新加载/刷新时,表/页面会使用正确的数据/更改进行刷新,但是在成功进行ajax调用之后,我无法获得重新加载表的API ...

jquery api datatables reload
1个回答
0
投票

由于某种原因,按照以下方式重新命名数据表对我有用:

$('.plugins_table').DataTable().ajax.reload();

代替上一个:

plugins_table.DataTable().ajax.reload();

其中'plugins_table'是表的初始命名变量。

我会对这种“行为...!”的解释感兴趣。

© www.soinside.com 2019 - 2024. All rights reserved.