【问题标题】:Create DataTable child row without showing it?创建 DataTable 子行而不显示它?
【发布时间】:2014-06-17 22:06:32
【问题描述】:

我正在使用数据表(v1.10.2 和 jquery 1.9.2),因为我喜欢开箱即用的功能(搜索/排序等)。但是,现在我希望能够: 1) 显示/隐藏行时使用动画(滑动) 2) 使 DOM 中的隐藏行可用以更改(即,它存在但显示:无)。

我当前创建表格的代码如下所示(其中 formatChild() 返回表格的 html):

 if (row.child.isShown()){
      row.child.hide();
      tr.removeClass('shown');
 } else {
     row = row.child(formatChild());
     row.show();
     tr.addClass('shown');
 }

我正在使用多种服务通过 ajax 更改子行表中的数据,并且希望即使该行被隐藏也能够更改该数据。我知道当我显示子行时,我可以在内存中创建一个地图并使用存储的地图中的信息,但对我来说,立即更改隐藏行要干净得多。

我希望我可以做一个 row()child(),修改该行,然后调用 row()child().show(),但是在 row.child() 之后的 DOM 中没有创建该行.

关于动画,我找到了答案here,但它涉及更改数据表代码:(

我考虑过只使用 jquery 向数据表添加一行并将其隐藏,但我找不到将其“附加”到主行进行排序的好方法。

我目前倾向于的计划是向我的主表行添加一个 div,我将显示/隐藏/更新而不是使用子行。

在数据表中管理这些隐藏区域(并用动画显示它们)的最佳做法是什么?太棒了

【问题讨论】:

    标签: datatables jquery-datatables


    【解决方案1】:

    如果其他人有同样的问题,我最终在行中使用了 DIV,而不是使用 DataTables 的子行。当我向数据表添加新行时,div 被隐藏,然后我在单击事件上隐藏和显示(上滑/下滑)。这给了我很好的动画,保持排序简单,让我改变隐藏行中的信息。有趣的是,DIV 包含一个表格,当我创建新行时该表格中的文本是可搜索的;但是,我的 ajax 调用添加/修改的表中的文本不可搜索。我正在研究我希望它如何工作(如果可能的话,可能会将 div 完全排除在搜索之外)。

    【讨论】:

    • 有趣的是,我遇到了完全相同的问题,现在以完全相同的方式解决了它,在阅读您的帖子之前,我只是想仔细检查一下其他人是如何解决它的。似乎程序员的大脑工作方式相似。
    猜你喜欢
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 2017-10-13
    • 2019-01-09
    相关资源
    最近更新 更多