当前位置: 首页 > 知识库问答 >
问题:

Datatables-如果没有要显示的数据,如何隐藏详细信息控件

蓝慈
2023-03-14

如果不存在要显示的数据,我想禁用详细信息控制。

function format(d) {   
    return d[1];
}

var table = $('#table').DataTable({
    "searching": false,
    "ordering": false,
    "info": false,
    dom: 'frt',
    serverSide: true,
    "pageLength": 4,
    language: {
        "zeroRecords": "..."
    },
    "stripeClasses": [],
    "columns": [
        null,
        null,
        null,
        null,
        {
            "class": "details-control",
            "orderable": false,
            "data": null,
            "defaultContent": ""
        },
        null
    ],
    ajax: $.fn.dataTable.pageLoadMore({
        url: "@Url.Action("Load")"
        }),
    drawCallback: function () {
            $('#btn-Load').toggle(this.api().page.hasMore());
        }
});

// Add event listener for opening and closing details
$('#table tbody').on('click', 'td.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(format(row.data())).show();
        tr.addClass('shown');
    }
});

HTML:

<table id="table" class="display" cellspacing="0">
    <thead>
        <tr>
            <th>@Html.LocalResources("A")</th>
            <th></th>
        </tr>
    </thead>
    <tbody></tbody>
</table>

如果位置1上没有数据显示,我如何隐藏显示图标?我咨询这个网站:https://datatables.net/examples/api/row_details.html查看api和它是如何工作的。

数据表API有许多方法用于将子行附加到数据表中的父行。这可用于显示有关行的其他信息,对于希望传递有关行的信息超过主机表空间的情况很有用。

下面的示例使用了row()。子方法,首先检查行是否已显示,如果已显示,则隐藏它(row()。小孩隐藏()),否则显示它(行()。小孩show())。在本例中,子行的内容由format()函数定义,但您可以将其替换为您想要显示的任何内容,例如,可能包括对服务器的Ajax调用以获取任何额外信息。

共有1个答案

葛意远
2023-03-14

您可以使用createdRow选项在创建每一行时处理事件,并根据您的条件从第一个单元格中删除classdetails控件。

例如:

"createdRow": function( row, data, dataIndex ) {
   if ( data["position"] === "Software Engineer" ) {
      $("td.details-control", row).removeClass("details-control");
   }
}

有关代码和演示,请参阅此示例

 类似资料:
  • 所以我有一个名为interestingpoint的类,其中包含变量'name'、'coordines'。我创建了一个包含有趣地点的列表,然后在地图上添加标记,如下所示: 所以主要的问题是,当我点击任何标记时,我可以获得它的细节吗?当我点击标记时,我想显示那个地方的描述和图片。

  • 如果该行没有详细信息怎么办?我使用WPF来显示带有行详细信息模板的数据。如果用户没有地址详细信息,我不需要行详细信息。我只需要那些有地址详细信息的用户的行详细信息。

  • 我用的是执行器上的Spring引导健康指示器。到目前为止,示例响应如下所示: 因为我需要将endpoint公之于众,所以我需要隐藏健康指标的详细信息,所以我希望得到如下内容:

  • 我在ReactJS中工作,我通过API从服务器获取数据。我做了一些搜索过滤,我想显示消息,如果没有记录可用?我是ReactJS的初学者,没有太多关于ReactJS的知识。 代码:

  • 我已经成功地将swagger集成到我的项目中 现在,我可以点击URLhttp://localhost:8080/myapp/v2/api-docs,看到返回的描述REST API的json。例如。 然后我拉入了swagger-ui依赖项

  • 我是Oracle DB的新手,已经创建了一个新的Oracle 12c数据库。我正在通过SQLDeveloper创建一个新的连接,在哪里可以获得连接详细信息?主机名?港口城市SID? 我尝试使用留档中给出的默认详细信息进行连接,但出现以下错误 测试失败:侦听器拒绝连接并出现以下错误:ORA-12505, TNS:侦听器当前不知道连接描述符中给出的SID