首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >DataTables -不使用Ajax展开子详细信息

DataTables -不使用Ajax展开子详细信息
EN

Stack Overflow用户
提问于 2014-05-09 22:09:41
回答 4查看 31.3K关注 0票数 22

我正在处理一个使用jquery DataTables (1.10版)的页面。TableData源代码目前只是在呈现的页面上作为一个HTML表发送,而且效果很好。但是,我希望能够展开行以显示详细信息。

与示例Here非常相似

但是,我目前使用的站点还没有设置任何类型的web服务,所以我不能像示例使用的那样调用ajax来获取扩展的信息。

有没有一种方法可以在完全呈现的页面上提供父子关系的所有必要信息?

我是否可以通过某种方式嵌套表格数据来实现这一点,或者告诉DataTables使每隔一行表格成为其上一行的子行?

我在datatables论坛上发布了同样的问题:Question

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-05-10 00:04:37

您可以将子行的数据存储在父行的data属性中,并相应地更改示例中的format方法。就像这样

在您的HTML中:

<tr data-child-name="test1" data-child-value="10">
    <td>ParentRow</td>
    <td>No. 1</td>
</tr>

click处理程序中(示例中的第50行):

row.child(format(tr.data('child-name'), tr.data('child-value'))).show();

作为format方法,如下所示:

function format (name, value) {
    return '<div>Name: ' + name + '<br />Value: ' + value + '</div>';
}
票数 26
EN

Stack Overflow用户

发布于 2016-12-09 03:01:34

虽然从技术上讲,这个示例并不完全使用AJAX,但它本质上是完全相同的概念。你仍然被迫使用格式化函数添加行,无论是格式化函数构建从AJAX获取值的HTML,还是硬编码到数据属性中,有什么区别。

据我所知,没有办法从一开始就将子行插入到HTML中,而只是让展开控件只显示子行的现有HTML,而不是构建子行HTML,将其插入到DOM中并显示它。

票数 2
EN

Stack Overflow用户

发布于 2020-10-15 18:10:29

不管是谁最终来到这里。我知道这个问题已经有了一个公认的答案,但它对我来说不起作用。对我有用的是:我使用了这里的确切示例:https://datatables.net/examples/api/row_details.html我唯一更改的是

 $(document).ready(function() {
    var table = $('#example').DataTable( {
    "ajax": "../ajax/data/objects.txt", <-- this line I changed

 $(document).ready(function() {
    var table = $('#example').DataTable( {
    "data": <%-JSON.stringify(data.table)%>,

我使用ejs,所以我从服务器端发送数据,在html中,我可以使用<%= data %>,它有表,但在html脚本中,我必须像这样使用data.table:

<%-JSON.stringify(data.table)%>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23566754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档