我有一个表,我使用quicksearch
jQuery插件搜索(显示/隐藏行)。在同一个表中,我必须显示/隐藏复选框(表中的第一列)的所有行,如果用户单击切换行按钮(按钮在表外)。
当我在表格中搜索数据时,隐藏的行(选中复选框)变为可见。我怎样才能实现这两种功能。
当用户在表格中搜索数据时,所有隐藏的行(选中复选框并且用户点击“切换行”)将保持隐藏状态,反之亦然。
以下是我的jQuery:
$(function () {
$('input#gridSearch').quicksearch('#<%=gvActivities.ClientID %> tbody tr');
$('.showhiderows').click(function () {
$('#<%=gvActivities.ClientID %>').find("input[type=checkbox]:checked").closest('tr').toggle();
});
});
Checkbox是GridView中的第一列。
显示/隐藏所选行的按钮:
<input type="button" id="btnShowHide" class="showhiderows" value="Toggle Selected Rows" />
表结构,只是标题和第一行:
<table class="gvv1" id="MainContent_gvActivities">
<tr style="background-color: buttonface;">
<th scope="col">
</th>
<th scope="col">
Cluster
</th>
<th scope="col">
Activity
</th>
<th scope="col">
Data
</th>
<th scope="col">
Target
</th>
<th scope="col">
Achieved
</th>
</tr>
<tr>
<td>
<input id="longIdGeneratedByCode" type="checkbox"/>
</td>
<td style="width: 50px;">
ER.
</td>
<td style="width: 250px;">
Establishment
</td>
<td style="width: 460px;">
Number of
</td>
<td style="width: 70px;">
Text
</td>
<td style="width: 70px;">
Text2
</td>
</tr>
</table>
答案 0 :(得分:2)
我想我可以解决它,
$("#showhidetr").on("click", function(){
if($(this).is(':checked')){
$("#myTable").find("input[type='checkbox']").each(function(){
if($(this).is(':checked')){
$(this).parent().parent().hide();
}
})
} else {
$("#myTable").find("input[type='checkbox']").each(function(){
if($(this).is(':checked')){
$(this).parent().parent().show();
}
})
}
})
<input type='checkbox' id="showhidetr">
<table id="myTable">
<tr>
<td><input type='checkbox'></td>
<td>Mary</td>
</tr>
<tr>
<td><input type='checkbox'></td>
<td>John</td>
</tr>
<tr>
<td><input type='checkbox'></td>
<td>Michael</td>
</tr>
</table>
当您单击showhidetr复选框时,脚本会在表格中查找已选中的复选框并隐藏其tr。