【问题标题】:JSF render component ajax radio button selectionJSF 渲染组件 ajax 单选按钮选择
【发布时间】:2015-09-11 13:59:58
【问题描述】:

此问题是对JSF Primefaces Radio Button show/hide/enable a textarea 的跟进 通过将 inputTextArea 包装在 panelGroup 中,从该帖子中解决了两个问题之一,但是我仍然需要弄清楚当状态为 2(=否)时如何在表单加载时不显示 inputTextArea,但仅在正在切换第 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 表示没有理由

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

【问题讨论】:

  • 我阅读了您的个人资料。你从什么时候开始学习 jsf/java 的?我也依靠互联网/ SO来学习(我认为每个开发人员实际上都是自己学习的)。无论如何,我在这条路上有点孤单。也许与一些 SO 用户建立一个 Skype 组或其他东西会很酷。

标签: javascript ajax jsf


【解决方案1】:

好吧,真正的答案是,如果您不想显示 bean,则在加载 bean 时不要将值设为 2。但你已经知道了。您所要求的内容对您以及您想如何做事都是主观的。你没有问题,这更像是一个设计问题。说了这么多:

也许你想要两个条件:

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

如果您想变得花哨,请制作一个 @ViewScoped bean 来监听您在帖子中谈论的点击(不确定点击的作用)。侦听单击并拥有一个布尔属性,一旦单击已注册(可能使用操作侦听器),您就可以将其设置为 true。这样文本区域只会在点击时显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-25
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    相关资源
    最近更新 更多