2017-03-16 33 views
0

我正在使用DataTables來顯示某些數據。我需要使每一行都可以摺疊,並在點擊它之後下載有關當前行的其他信息。引導數據表:如果我通過AJAX獲取數據,則無法在展開的行中顯示數據

基於documentation我準備了這一點:

$('#tasks tbody').on('click', 'tr.details-control', function() { 
    var tr = $(this).closest('tr'); 
    var row = table.row(tr); 

    if (row.child.isShown()) { 
     // This row is already open - close it 
     row.child.hide(); 
     tr.removeClass('shown'); 
    } 
    else { 
     // Open this row 
     row.child(getToolsForUser(row.data())).show(); 
     tr.addClass('shown'); 
    } 
}); 

它的工作,但只有當我從getToolsForUser()返回靜態數據。通過AJAX在success功能獲取數據並返回了它在控制檯中引發錯誤:

TypeError: row.child(...) is undefined

我也試圖與$.Deferreddone(),結果是,你可以找到here相同^

活生生的例子。

(17日評論線和使其工作取消註釋行19 - 但僅限於靜態數據)

我如何使用功能Ajax調用從row.child().show()叫什麼名字?

+0

這行'無功一行之後=表。行(tr);」什麼是「行」價值? – nivendha

+1

這裏是一個工作示例,https://jsfiddle.net/8ae3b5sz/ –

+0

@Jatinpatil:O非常感謝!請將您的評論添加爲答案 - 我會將其標記爲解決方案。 –

回答

1

嘗試在阿賈克斯的成功調用追加數據,

success: function (response) { 
       currentElement.child(JSON.stringify(response)).show(); 
      }, 

我已經修改了小提琴和你在這裏是工作的解決方案,
https://jsfiddle.net/8ae3b5sz/

相關問題