2017-03-16 76 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/

相关问题