jQuery数据表使用fnClose()关闭每个打开的行 [英] JQuery Datatables Close Each Open Row with fnClose()

查看:95
本文介绍了jQuery数据表使用fnClose()关闭每个打开的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在我的数据表中创建一个关闭 onClick 所有打开的 tr 的按钮.

I'm trying to make a Button which closes onClick all opened tr in my Datatable.

我使用以下命令打开行:

I'm opening the rows with the following command :

oTable.fnOpen(nTr, fnFormatDetails(oTable, nTr), 'newtr');

是否有可能关闭我的数据表中所有打开的 tr 行?

Is there a simply possibility to close all opened tr rows in my Datatable?

推荐答案

我认为您试图完成与我相同的事情是,当我打开第二行时,我希望关闭上一行.

I think your trying to accomplish the same thing i was which is when i open a second row i want the previous row to close.

意思是我一次只能显示一行详细信息.

Meaning i would only be able to display one rows details at a time.

$(document).ready(function () {
    var previousTr;
    oTable = $('#bookingstable').dataTable
         ({
             "aoColumnDefs": [
                 { "bVisible": false, "aTargets": [2, 6, 7, 8, 9, 12, 13, 14, 15] }
             ]
         });


    $('#bookingstable tbody td').live('click', function () {
        var selectedTr = $(this).parents('tr')[0];
        if (oTable.fnIsOpen(previousTr)  && previousTr != selectedTr)) {
            oTable.fnClose(previousTr);
        }
        if (oTable.fnIsOpen(selectedTr)) {
            oTable.fnClose(selectedTr);
        }
        else {
            oTable.fnOpen(selectedTr, fnDetailsRow(selectedTr), 'details-row');
            previousTr = selectedTr;
        }
    });
});
function fnDetailsRow(selectedTr) {
    var TrData = oTable.fnGetData(selectedTr);
    var detailsRow = '<table border="0">';
    detailsRow += '<tr><td class="space" rowspan="4"><br /><h1>⇉</h1></td><td     class="LabelField">Passenger Name</td><td class="ValueField">' + TrData[3] + '</td><td class="LabelField" rowspan="2">Pickup Details</td><td class="ValueField" rowspan="2">' + TrData[14] + '</td><td class="LabelField" rowspan="2">Customer Notes</td><td class="ValueField" rowspan="2">' + TrData[9] + '</td></tr>';
    detailsRow += '<tr><td class="LabelField">Phone Number</td><td class="ValueField">' + TrData[2] + '</td></tr>';
    detailsRow += '<tr><td class="LabelField">Car Type</td><td class="ValueField">' + TrData[6] + '</td><td class="LabelField" rowspan="2">Dropoff Details</td><td class="ValueField"  rowspan="2">' + TrData[15] + '</td><td class="LabelField" rowspan="2">Office Notes</td><td class="ValueField" rowspan="2">' + TrData[12] + '</td></tr>';
    detailsRow += '<tr><td class="LabelField">Pax and Bags</td><td class="ValueField">' + TrData[7] + ' Paxs & ' + TrData[8] + ' Bags' + '</td></tr>';
    return detailsRow;
}

注意,我声明文档上已准备好var previousTr,并在打开第二行之前对其进行检查.记得当您打开新行时当然要再次设置它.

Notice I am declaring a var previousTr on document ready and checking it before opening any 2nd row. remembering of course to set it again once you've opened a new row.

这篇关于jQuery数据表使用fnClose()关闭每个打开的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆