我目前使用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'));
}
});
}
});