在我的数据表中,我有一个隐藏列包含最近行中数据的当前状态的名称,但是当按下输入复选框时,通过这种方式更改该隐藏列的文本:
$("#rBuscarPerfil").on('click','input[type="checkbox"]',function() {
if($(this).is(':checked')) {
$(this).closest('tr').find('td:last').html("Activo");
} else {
$(this).closest('tr').find('td:last').html("Desactivado");
}
........
}
并且当按下顶部的按钮时,例如:
活动的,在 dataTable 的输入搜索中放置了文本“Activo”,并且表显示仅结果在每行的最后一个 td 中包含“Activo”字样。
Inactivo,在 dataTable 的输入搜索中放置文本并仅显示结果,在每行的最后一个 td 中包含“Desactivado”字样。
问题是这样的:搜索仅在打开页面或刷新浏览器时有效,但如果我选中或取消选中每一行中的任何复选框,则最后一行中的文本最后一行中的文本会正确更改。但似乎该表处于当前状态并且不会更新其属性,并且搜索不会显示具有这些更改的结果。
html代码表
<table cellspacing="1" id="rBuscarPerfil" class="tableResultsSearch" name="rBuscarPerfil">
<thead>
<tr>
<th>NOMBRE</th>
<th>DESCRIPCIÓN</th>
<th>ACCIÓN</th>
<th>STATUS</th>
<th style="display:none;">STATUS2</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
js加载表格内容
if(response.success == "success") {
if(area == "perfil") {
$('#rBuscarPerfil tbody tr').remove();
$.each(response, function (index,record){
if(valNumber(index)) {
var row = $("<tr class='"+record.IdPerfil+"'/>");
$("<td nombre='"+record.NomPerfil+"'/>").text(record.NomPerfil).appendTo(row);
$("<td />").text(record.DesPerfil).appendTo(row);
$("<td />").html("<img src='media/icons/edit_item.png' class='bModifyProfile' cve='"+record.DesPerfil+"' alt='Editar' title='Editar'></img><img src='media/icons/delete_item.png' class='bDeleteProfile' cve='"+record.IdPerfil+"' alt='Eliminar' title='Eliminar'></img>").appendTo(row);
if (record.EdoPerfil == 1) {
$("<td />").html("<input type='checkbox' checked/>").appendTo(row);
row.css("backgroundColor","#b0f2b1");
} else {
$("<td />").html("<input type='checkbox' />").appendTo(row);
row.css("backgroundColor","#ffddec");
}
$("<td style='display:none;' />").text(record.nomStatus).appendTo(row);
row.appendTo("#rBuscarPerfil tbody");
}
});
}
}
var oTable = $('#rBuscarPerfil').dataTable({
"bJQueryUI": true,
"bRetrieve" : true,
"bDestroy" : true,
"aaSorting": [[ 0, "desc" ]],
"sPaginationType" : "full_numbers"
});
oTable.fnDraw();
我希望我已经解释过了。