繁体   English   中英

事件发生时动态显示panelGroup(JSF / ICEFACES)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM