javascript - 在条件下显示数据表中的特定子行
问题描述
我想在特定条件下显示特定行的子行,例如,如果孩子的性别是男性,我只想显示子行,并且此信息也可以在子行本身中找到。
在我下面的代码中,它展开/折叠所有子行。我该如何解决这个问题?
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');
}
});
解决方案
检查这个例子。希望这会有所帮助。fnRowCallback()将帮助您在创建表格时访问每一行,因此您可以检查该行是否包含男性或女性并据此隐藏该行。根据此示例,如果该行包含性别为“男性”的数据,它将隐藏该特定行。
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>
推荐阅读
- java - 从另一个类访问非静态方法
- c - 如何使用根据类型确定的位数 printf("%0x")?
- regex - 获取两个单词之间的字符串
- android - 每当更改输入/控件时,如何调用事件侦听器或方法?
- python - PyCharm:Python 控制台在打开时抛出 ImportError
- oledbconnection - Visual Studio 2017 中的 OLEDB 连接问题
- c# - MongoDb c# 使用 bsonextraelements 映射递归对象
- android - 什么是具有高质量和高宽比的最佳图像缩放器(如电报或whatsapp 或...)?
- node.js - 使用 PG-Promise 和 PG-Query-Stream 高效地读取、操作和插入数据
- postgresql - PostgreSQL autovacuum 导致性能显着下降