【问题标题】:Displaying JSF components for multiple selecitems using rendered使用渲染显示多个选择的 JSF 组件
【发布时间】:2018-04-30 22:39:48
【问题描述】:
<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'}">

【问题讨论】:

  • 我很难理解您的问题。您发布了您声明正在工作的内容(以及所有 3 个选项),然后您发布了所有 3 个选项都需要它,然后您只发布了 1 个选项,然后又发布了 2 个无效但看起来的示例(至少尝试)与您所说的第一个工作相同...如果您只使用纯输入文本而不是选择,它是否有效?如果不是问题不是选择相关的

标签: jsf primefaces selectonemenu rendered-attribute


【解决方案1】:

我想您正在寻找ui:fragment 将在选择'PROBE' 选项时 呈现的条件。

在这种情况下,您需要定义 exclusive 条件 (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 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多