簡體   English   中英

使用渲染顯示多個選擇的JSF組件

[英]Displaying JSF components for multiple selecitems using rendered

<p:fieldset styleClass="weightTextBox">
            <p:selectOneMenu id="detectionSelector" value="#{ngs.detectionMode}">
                <f:selectItem itemValue="SYBR" itemLabel="SYBR" />
                <f:selectItem itemValue="NONE" itemLabel="None" />
                <f:selectItem itemValue="SYBR_GREEN" itemLabel="Sequencing" />
                <f:selectItem itemValue="PROBE" itemLabel="Probe" />
                <p:ajax event="change" update="@form" render="@form"/>
            </p:selectOneMenu>
            </p:fieldset>

我確實有多個選擇項,而三個值NONE,SYBR,SYBR_GREEN具有相同的用法。 我想做的是

<ui:fragment rendered="#{ngs.detectionMode ne 'SYBR_GREEN' or ngs.detectionMode ne 'NONE' or ngs.detectionMode ne 'SYBR'}">

雖然這種方式有效,但我需要所有3個選項。

<ui:fragment rendered="#{ngs.detectionMode ne 'SYBR_GREEN'}">

我嘗試了多種方法,但沒有一種有效。

<ui:fragment rendered="#{(ngs.detectionMode ne 'SYBR_GREEN') or (ngs.detectionMode ne 'NONE') or (ngs.detectionMode ne 'SYBR')}">


<ui:fragment rendered="#{ngs.detectionMode ne 'SYBR_GREEN' or 'NONE' or 'SYBR'}">

我想您正在尋找當選擇“ PROBE”選項時才呈現ui:fragment條件。

在這種情況下,您需要定義排除條件(AND),而不要像失敗嘗試中那樣定義包括條件(OR)。

因此,例如,

<ui:fragment rendered="#{(ngs.detectionMode ne 'SYBR_GREEN') or (ngs.detectionMode ne 'NONE') or (ngs.detectionMode ne 'SYBR')}">

你應該使用

<ui:fragment rendered="#{(ngs.detectionMode ne 'SYBR_GREEN') and (ngs.detectionMode ne 'NONE') and (ngs.detectionMode ne 'SYBR')}">

另請注意, p:ajax組件沒有render屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM