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