我希望在特定条件下显示特定行的子行,例如,如果孩子的性别是男性,我只想显示子行,并且此信息也可以在子行本身中找到。 / p>
在我的下面的代码中,展开/折叠所有子行。我怎么解决这个问题?
function(data) {
var table = $('#childInfoTable').DataTable( {
ajax: 'childdata',
"dom": 'rt',
select:"single",
"columns": [
{
"className": 'childInfoShow',
"orderable": false,
"defaultContent": '',
width:"15px"
},
{ "data": "id" },
{ "data": "name" }
]
});
$('#childInfoTable tbody').on('click', 'td.childInfoShow', function() {
var tr = $(this).closest('tr');
var row = table.row(tr);
if (row.child.isShown()) {
row.child.hide();
tr.removeClass('shown');
}
else {
row.child(format(row.data())).show();
tr.addClass('shown');
}
});
答案 0 :(得分:1)
检查此示例。希望这会有所帮助。 fnRowCallback()将帮助您在创建表时访问每一行,因此您可以检查该行是否包含男性或女性,并根据该行隐藏该行。根据此示例,如果行包含性别为“male”的数据,则会隐藏该特定行。
var data = [{name: "Sri",
gender: 'male'},
{name: "Sara", gender: "female"},
{name:"paul", gender: "male"}
]
$('#dtable').dataTable({
data: data,
columns: [{
data: 'name'
},
{data: 'gender'}],
fnRowCallback: function(nRow, aData, iDisplayIndex){
if(aData.gender == 'male'){
$(nRow).hide();
}
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.16/js/jquery.dataTables.min.js"></script>
<table id="dtable">
<thead><tr><th>Name</th><th>Gender</th></tr></thead>
<tbody>
</tbody>
</table>
答案 1 :(得分:1)
好的,我通过添加if else:
找到了解决方法else if (row.data().gender == 'male') {
}
else {
row.child(format(row.data())).show();
tr.addClass('shown');
}