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