Javascript Datatables-刷新/重新加载ajax不工作

Javascript Datatables-刷新/重新加载ajax不工作,javascript,jquery,ajax,datatables,Javascript,Jquery,Ajax,Datatables,大家好,我成功地创建了一个datatable,它可以从ajax调用中获取数据。因此,对于初始加载,工作正常。我创建了一个名为refresh的按钮,我希望如果我调用我的函数initiatearchiveIncidents,它会再次获取我的数据并重新加载表,但我得到的错误是无法重新初始化数据表 所以我试着做dtTable.ajax.reload()但这失败了,因为它不理解我的ajax调用。有人知道如何正确地做到这一点吗 initiatearchiveIncidents: function (

大家好,我成功地创建了一个datatable,它可以从ajax调用中获取数据。因此,对于初始加载,工作正常。我创建了一个名为refresh的按钮,我希望如果我调用我的函数
initiatearchiveIncidents
,它会再次获取我的数据并重新加载表,但我得到的错误是
无法重新初始化数据表

所以我试着做
dtTable.ajax.reload()但这失败了,因为它不理解我的ajax调用。有人知道如何正确地做到这一点吗

    initiatearchiveIncidents: function () {

        $.getJSON(this.basePath() + '/XPROD_Incidents?$filter=ÉtatValue%20eq%20%27Fermé%27&$orderby=Modifié asc',
            function (data) {
            //Sharepoint REST returns a nested data format, so we go deep to get the useful parts
              var myData = data.d.results;
              moment.locale('fr');

            //this is the key part of datatables       
                dtTable = $('#example').DataTable({

                    data: myData,
                    columns:[
                        {
                                "width": "30px",
                                sortable: false,
                                "render": function (data, type, full, meta) {
                                return "<button class='edit_button btn btn-default btn-sm' name ='btnSubmit' type='button' value='Edit' data-ID='"+full.ID+"'><i class='fa fa-pencil fa-2'></i></button>";
                                }
                        },
                        { data: "Incident", "width": "75px" },        
                        {
                                "width": "65px",
                                sortable: false,
                                "render": function (data, type, full, meta) {
                                return "<h4><span class='priorité_span'>"+full.PrioritéValue+ "</span></h4>";
                                }
                        },      
                        { data: "Composante","width": "75px",className: "over_flow_control" },         
                        { data: "Description","width": "300px",className: "over_flow_control" },
                        { data: "Début_imputabilité","width": "100px"  },
                        { data: "ResponsableValue","width": "100px",className: "over_flow_control"  }

                        ],
                        "order": [[ 5, "desc" ]],
                    "drawCallback": function( settings ) {
                    IncidentManager.table_conditional_format();
                    $('#loading').hide("slow");
                    },

                })
            });

    },  
initiatearchiveIncidents:函数(){
$.getJSON(this.basePath()+'/XPROD_事件?$filter=ÉtatValue%20eq%20%27Fermé%27&$orderby=Modifiéasc',
功能(数据){
//Sharepoint REST返回嵌套的数据格式,因此我们深入获取有用的部分
var myData=数据d.结果;
地点('fr');
//这是datatables的关键部分
dtTable=$(“#示例”).DataTable({
数据:myData,
栏目:[
{
“宽度”:“30px”,
可排序:false,
“呈现”:函数(数据、类型、完整、元){
返回“”;
}
},
{数据:“事件”,“宽度”:“75px”},
{
“宽度”:“65px”,
可排序:false,
“呈现”:函数(数据、类型、完整、元){
返回“+full.PrioritéValue+”;
}
},      
{数据:“组件”,“宽度”:“75px”,类名:“过流控制”},
{数据:“描述”,“宽度”:“300px”,类名:“过流控制”},
{数据:“Début_inputabilité”,“宽度”:“100px”},
{数据:“ResponsableValue”,“width”:“100px”,类名:“over_flow_control”}
],
“订单”:[[5,“说明”],
“drawCallback”:函数(设置){
IncidentManager.table_conditional_format();
$('#加载')。隐藏(“慢速”);
},
})
});
},  

您需要重写
initiatearchiveIncidents()
函数,以便将jQuery DataTables Ajax功能与
Ajax.url
Ajax.dataSrc
选项一起使用,请参见下文

当需要重新加载数据时,只需调用
$('#示例').DataTable().ajax.reload()
,有关更多详细信息,请参阅

initiatearchiveIncidents: function() {

    moment.locale('fr');

    //this is the key part of datatables       
    dtTable = $('#example').DataTable({
        ajax: {
            url: this.basePath() + '/GDI_PROD_Incidents?$filter=ÉtatValue%20eq%20%27Fermé%27&$orderby=Modifié asc',
            dataSrc: "d.results"
        },
        columns: [
            {
                "width": "30px",
                sortable: false,
                "render": function(data, type, full, meta) {
                    return "<button class='edit_button btn btn-default btn-sm' name ='btnSubmit' type='button' value='Edit' data-ID='" + full.ID + "'><i class='fa fa-pencil fa-2'></i></button>";
                }
            }, {
                data: "Incident",
                "width": "75px"
            }, {
                "width": "65px",
                sortable: false,
                "render": function(data, type, full, meta) {
                    return "<h4><span class='priorité_span'>" + full.PrioritéValue + "</span></h4>";
                }
            }, {
                data: "Composante",
                "width": "75px",
                className: "over_flow_control"
            }, {
                data: "Description",
                "width": "300px",
                className: "over_flow_control"
            }, {
                data: "Début_imputabilité",
                "width": "100px"
            }, {
                data: "ResponsableValue",
                "width": "100px",
                className: "over_flow_control"
            }

        ],
        "order": [[5, "desc"]],
        "drawCallback": function(settings) {
            IncidentManager.table_conditional_format();
            $('#loading').hide("slow");
        }

    });
},
initiatearchiveIncidents:function(){
地点('fr');
//这是datatables的关键部分
dtTable=$(“#示例”).DataTable({
阿贾克斯:{
url:this.basePath()+'/GDI_PROD_events?$filter=ÉtatValue%20eq%20%27Fermé%27&$orderby=Modifiéasc',
dataSrc:“d.results”
},
栏目:[
{
“宽度”:“30px”,
可排序:false,
“呈现”:函数(数据、类型、完整、元){
返回“”;
}
}, {
数据:“事件”,
“宽度”:“75px”
}, {
“宽度”:“65px”,
可排序:false,
“呈现”:函数(数据、类型、完整、元){
返回“+full.PrioritéValue+”;
}
}, {
数据:“镇静”,
“宽度”:“75px”,
类名:“过流控制”
}, {
数据:“说明”,
“宽度”:“300px”,
类名:“过流控制”
}, {
数据:“但不可指责”,
“宽度”:“100px”
}, {
数据:“责任价值”,
“宽度”:“100px”,
类名:“过流控制”
}
],
“订单”:[[5,“说明”],
“drawCallback”:函数(设置){
IncidentManager.table_conditional_format();
$('#加载')。隐藏(“慢速”);
}
});
},

您必须先销毁表
dtTable.destroy()为什么不使用Datatables的默认Ajax功能?()尝试了dtTable.destroy():但它同时删除了我的表al,当我尝试附加到我的tbody时,它不再工作了。我可能需要重新考虑使用destroy()方法的方法。我尝试了常规的ajax函数,但由于某种原因,当我放置
data:data.d.results
时,它似乎不喜欢它。我收到错误,指出数据为空。我发现使用getJson更容易。