当用户选择 data-table 所有单独的复选框列切换器时如何检查 SelectAll?
How to check SelectAll when user selects the data-table all individual check-box column toggler?
根据 <p:columnToggler>
中的列选择显示数据 table 中的列。
在该列选择中,当我单独选中所有复选框时,应该选中 selectAll。
如何在用户单独选择数据-table所有复选框列切换器时检查Select全部?
数据中的切换代码table:
<f:facet name="header">
<h:panelGroup layout="block" styleClass="columnSty vetselectStyle">
<p:commandButton id="toggler" value="" global="false" onclick="addSelectAll();" type="button" title="Column Selection"/>
<p:columnToggler datasource="vetDataTable" id="colTogglerVetDataTable" trigger="toggler">
</p:columnToggler>
</h:panelGroup>
</f:facet>
要添加的代码 Select 列中的所有复选框 Selection:
function addSelectAll(){
$("#li_togglerSelectAll")&&
$("#li_togglerSelectAll").remove(),
$(".ui-columntoggler-items").prepend('<li id="li_togglerSelectAll" class="selectAllSty"> <input type="checkbox" id="togglerSelect" onclick="selectAllInToggler(document.getElementById(\'togglerSelect\').checked);"/><label for="togglerSelect">SelectAll</label></li>')
}
function selectAllInToggler(a){
$(".ui-columntoggler-items").find("li").find("> .ui-chkbox > .ui-chkbox-box >.ui-chkbox-icon").each(function(b){a?$(this).hasClass("ui-icon-blank") && $(this).click():$(this).hasClass("ui-icon-check") && $(this).click()
})
}
将函数绑定到切换器的点击事件,以检查是否选择了所有项目。
像这样的东西:
function addSelectAll(){
$("#li_togglerSelectAll")&&
$("#li_togglerSelectAll").remove(),
$(".ui-columntoggler-items").prepend('<li id="li_togglerSelectAll" class="selectAllSty"> <input type="checkbox" id="togglerSelect" onclick="selectAllInToggler(document.getElementById(\'togglerSelect\').checked);"/><label for="togglerSelect">SelectAll</label></li>')
##Add this
$('.ui-columntoggler-items').bind("click", function() {
if ($($(this)[0]).find('.ui-chkbox-icon.ui-icon.ui-icon-blank').length === 0) { $('#togglerSelect').prop('checked', true); } else { $('#togglerSelect').prop('checked', false); }
})
}
解决方法如下:
SelectAll 当用户选择 data-table 所有单独的 check-box 列切换器时
<h:panelGroup>
<p:commandButton id="toggler" value="" global="false" onclick="addSaveButton();selectAll();" type="button" title="Column Selection" />
<p:columnToggler datasource="vetDataTable" id="colTogglerVetDataTable" trigger="toggler">
<p:ajax event="toggle" oncomplete="selectAll();" />
</p:columnToggler>
</h:panelGroup>
function selectAll() {
var a=[],b=[];
$(".ui-columntoggler-items").find("li").find("> .ui-chkbox > .ui-chkbox-box >.ui-chkbox-icon").each(function()
{
var d="";
$(this).hasClass("ui-icon-blank")?(
d=$(this).parent().parent().parent().find("label").text(),
a.push(d.trim())):$(this).hasClass("ui-icon-check")&&
( d=$(this).parent().parent().parent().find("label").text(),
b.push(d.trim()))
});
//alert(a.length);
//alert(b.length);
if(a.length == '0')
$('#togglerSelect').prop('checked', true);
else
$('#togglerSelect').prop('checked', false);
}
我已经用类似的方式实现了
function selectAllBtn() {
if( $(".ui-columntoggler-items").find("li")[0].id != "li_togglerSelectAll"){ //only once
$(".ui-columntoggler-items").prepend('<li id="li_togglerSelectAll" > <input type="checkbox" id="togglerSelect" class="margemDir" onclick="selectAllInToggler(document.getElementById(\'togglerSelect\').checked);"/><label for="togglerSelect">Sellect all</label></li>')
}
}
function selectAllInToggler() {
$(".ui-columntoggler-items").find("li").each(function() {
if($('#togglerSelect').prop('checked')){
if( $(this).find("span").hasClass("ui-icon-blank") ) {
$(this).find('label')[0].click();
}
}else
if( $(this).find("span").hasClass("ui-icon-check") ){
$(this).find('label')[0].click();
}
}
})
};
在视图中只需调用 'selectAllBtn()';
<p:commandButton id="togglerColTab" type="button"
title="#{msg.label_collumns}" icon="fa fa-columns"
onclick="selectAllBtn();" styleClass="btnFilterCol " />
根据 <p:columnToggler>
中的列选择显示数据 table 中的列。
在该列选择中,当我单独选中所有复选框时,应该选中 selectAll。
如何在用户单独选择数据-table所有复选框列切换器时检查Select全部?
数据中的切换代码table:
<f:facet name="header">
<h:panelGroup layout="block" styleClass="columnSty vetselectStyle">
<p:commandButton id="toggler" value="" global="false" onclick="addSelectAll();" type="button" title="Column Selection"/>
<p:columnToggler datasource="vetDataTable" id="colTogglerVetDataTable" trigger="toggler">
</p:columnToggler>
</h:panelGroup>
</f:facet>
要添加的代码 Select 列中的所有复选框 Selection:
function addSelectAll(){
$("#li_togglerSelectAll")&&
$("#li_togglerSelectAll").remove(),
$(".ui-columntoggler-items").prepend('<li id="li_togglerSelectAll" class="selectAllSty"> <input type="checkbox" id="togglerSelect" onclick="selectAllInToggler(document.getElementById(\'togglerSelect\').checked);"/><label for="togglerSelect">SelectAll</label></li>')
}
function selectAllInToggler(a){
$(".ui-columntoggler-items").find("li").find("> .ui-chkbox > .ui-chkbox-box >.ui-chkbox-icon").each(function(b){a?$(this).hasClass("ui-icon-blank") && $(this).click():$(this).hasClass("ui-icon-check") && $(this).click()
})
}
将函数绑定到切换器的点击事件,以检查是否选择了所有项目。
像这样的东西:
function addSelectAll(){
$("#li_togglerSelectAll")&&
$("#li_togglerSelectAll").remove(),
$(".ui-columntoggler-items").prepend('<li id="li_togglerSelectAll" class="selectAllSty"> <input type="checkbox" id="togglerSelect" onclick="selectAllInToggler(document.getElementById(\'togglerSelect\').checked);"/><label for="togglerSelect">SelectAll</label></li>')
##Add this
$('.ui-columntoggler-items').bind("click", function() {
if ($($(this)[0]).find('.ui-chkbox-icon.ui-icon.ui-icon-blank').length === 0) { $('#togglerSelect').prop('checked', true); } else { $('#togglerSelect').prop('checked', false); }
})
}
解决方法如下:
SelectAll 当用户选择 data-table 所有单独的 check-box 列切换器时
<h:panelGroup>
<p:commandButton id="toggler" value="" global="false" onclick="addSaveButton();selectAll();" type="button" title="Column Selection" />
<p:columnToggler datasource="vetDataTable" id="colTogglerVetDataTable" trigger="toggler">
<p:ajax event="toggle" oncomplete="selectAll();" />
</p:columnToggler>
</h:panelGroup>
function selectAll() {
var a=[],b=[];
$(".ui-columntoggler-items").find("li").find("> .ui-chkbox > .ui-chkbox-box >.ui-chkbox-icon").each(function()
{
var d="";
$(this).hasClass("ui-icon-blank")?(
d=$(this).parent().parent().parent().find("label").text(),
a.push(d.trim())):$(this).hasClass("ui-icon-check")&&
( d=$(this).parent().parent().parent().find("label").text(),
b.push(d.trim()))
});
//alert(a.length);
//alert(b.length);
if(a.length == '0')
$('#togglerSelect').prop('checked', true);
else
$('#togglerSelect').prop('checked', false);
}
我已经用类似的方式实现了
function selectAllBtn() {
if( $(".ui-columntoggler-items").find("li")[0].id != "li_togglerSelectAll"){ //only once
$(".ui-columntoggler-items").prepend('<li id="li_togglerSelectAll" > <input type="checkbox" id="togglerSelect" class="margemDir" onclick="selectAllInToggler(document.getElementById(\'togglerSelect\').checked);"/><label for="togglerSelect">Sellect all</label></li>')
}
}
function selectAllInToggler() {
$(".ui-columntoggler-items").find("li").each(function() {
if($('#togglerSelect').prop('checked')){
if( $(this).find("span").hasClass("ui-icon-blank") ) {
$(this).find('label')[0].click();
}
}else
if( $(this).find("span").hasClass("ui-icon-check") ){
$(this).find('label')[0].click();
}
}
})
};
在视图中只需调用 'selectAllBtn()';
<p:commandButton id="togglerColTab" type="button"
title="#{msg.label_collumns}" icon="fa fa-columns"
onclick="selectAllBtn();" styleClass="btnFilterCol " />