[英]Dynamically show a panelGroup when an event happens (JSF/ICEFACES)
我想动态显示panelGroup。
在此代码中,我有一些可以填充的框。 当最后一个可用的框填充有数据时,应该显示带有一组新框的panelGroup。
<ice:panelGroup binding="#{myPage.boxes0to9}" />
<ice:panelGroup binding="#{myPage.boxes10to19}" />
仅在#{myPage.boxes0to9}中的最后一个框已填写时,如何显示第二个panelGroup?
谢谢!
您可以通过将<ice:panelGroup>
用div包裹并通过javascript检查显示/隐藏来实现此目的:
<script type="text/javascript">
var arrInputs = new Array(9);
function checkInputsFulfilled(value, index) {
arrInputs[index] = (value == "");
var filled = true;
for(var i = 0; i < arrInputs.length; i++) {
if (arrInputs[i]) {
filled = false;
break;
}
}
document.getElementById("myDiv").style.display = filled ? "block" : "none";
}
</script>
<ice:panelGroup binding="#{myPage.boxes0to9}">
<!-- your 9 inputs (or more) here, I'll write 1 as a sample -->
<h:inputText value="#{myBean.attribute1}" onchange="checkInputsFulfilled(this.value, 0);" />
</ice:panelGroup>
<div id="myDiv" style="display:none">
<ice:panelGroup binding="#{myPage.boxes10to19}">
</ice:panelGroup>
</div>
您也可以使用ajax支持并提供一个包装第二个<ice:panelGroup>
的JSF组件来完成此操作,但是当您仅清空一个起始输入并且应该隐藏该组时,这将产生很大的影响。 当然,如果您不希望仅修改它,则此最后一个行为由javascript控制:)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.