繁体   English   中英

JSF渲染组件ajax单选按钮选择

[英]JSF render component ajax radio button selection

此问题是JSF Primefaces单选按钮显示/隐藏/启用文本区域的后续操作,通过将inputTextArea包装在panelGroup中解决了该问题中的两个问题之一,但是我仍然需要弄清楚如何不显示on当状态为2(=否)时加载表单,但仅在切换第2列下的单选时显示。


在此处输入图片说明

    <p:column ...>
        <p:selectOneRadio ...>
        ...
            <p:ajax update="reason" />
        </p:selectOneRadio>
    </p:column>
    <p:column headerText="Reason For Attribute Failure">
      <h:panelGroup id="reason">
        <h:inputTextarea value="#{qAndA.fail_reason}" rendered="#{qAndA.toggle_value == '2'}" />
      </h:panelGroup>

        <h:outputText value="" rendered="#{qAndA.toggle_value == '1' or qAndA.toggle_value == '3'}" />
     <h:outputText value="#{qAndA.fail_reason}" rendered="#{qAndA.toggle_value == '2' or qAndA.toggle_value == '4'}" />

    </p:column>

状态码可能有缺陷:

  • 0 =尚无输入
  • 1 =是
  • 2 =否,有原因
  • 3 =不适用
  • 4 =否最终解决

我宁愿不必修改状态代码,而添加另一个中间代码,这样可能会起作用:

  • 2 =显示原因框
  • 2.5表示没有理由

除了修改状态码,还有其他选择吗?

好吧,真正的答案是,如果您不想显示bean,那么在加载bean时不要将其值设为2。 但是你已经知道了。 您所要问的内容取决于您自己以及您想做什么。 您没有问题,这更多是设计问题。 话虽如此,这是一个:

也许您想满足2个条件:

<h:inputTextarea value="#{qAndA.fail_reason}" rendered="#{qAndA.toggle_value == '2' and bean.AnotherCondition}" />

如果您想花哨的话,可以制作一个@ViewScoped bean,以监听您在帖子中谈论的点击(不确定点击的作用)。 监听点击,并拥有一个布尔属性,您可以在注册点击之后将其设置为true(也许使用动作侦听器)。 这样,文本区域仅在单击时显示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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