簡體   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