将元素附加到datatables列

时间:2014-10-17 04:50:38

标签: javascript jquery datatables

我目前使用createdRow回调将按钮(带链接)附加到数据表中的一列中。 但是当窗口调整大小(较小)并且该列被隐藏(仅在展开时显示)时,这不起作用,因为将不再调用createdRow。 有没有办法满足这种情况?

更新: 第7列最初包含相应项目的Id(数据[7])。 在createdRow回调中,我用3个可点击的图标替换Id(查看/更新/删除)。

createdRow: function (row, data, dataIndex) {
$(row).children().eq(7).html("")
    .append($("<i>").addClass("fa fa-eye mr5").attr("title", "Details").css("cursor", "pointer")
        .click(function () {
            window.location.href = self.urlViewCam + "/?id=" + encodeURIComponent(data[7]);
        }))
    .append($("<i>").addClass("fa fa-pencil mr5").attr("title", "Update").css("cursor", "pointer")
        .click(function () {
            window.location.href = self.urlUpdateCam + "/?id=" + encodeURIComponent(data[7]);
        }))
    .append($("<i>").addClass("fa fa-trash-o").attr("title", "Delete").css("cursor", "pointer")
        .click(function () {
            if (self.confirmationModal) {
                $('#divConfirmMsg').text("Do you want to delete \"" + data[0] + "\"?");
                $('#btnConfirmDelete').click(function () { deleteCamera(data[7]) });
                self.confirmationModal.modal("show");
            } else if (confirmDelete(data[0])) {
                deleteCamera(data[7]);
            }
        }));
}

当前解决方法:展开详细信息时,搜索下一个“tr”(展开的行),然后修改其内容。

$(self.detailedTableElem).on('click', 'tr', function () {
    var camName = $(this).children().eq(0).text();
    if (self.table.row($(this)).child.isShown()) {
        $(this).next('tr').find('li > span.dtr-title').each(function () {
            if ($(this).text() == functionColName + ":") {
                appendIcons(camName, $(this).next('span.dtr-data'));
            }
        });
    }
});

0 个答案:

没有答案