Primefaces如何根据选定的selectManyCheckbox项显示/隐藏inputText

时间:2015-05-22 10:26:29

标签: jsf primefaces

我需要您的协助,根据xhtml中List<PacketListener<T>中的所选项目显示和隐藏int two = "xx".length(); int thirtyone = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".length(); System.out.println(Math.pow(two, thirtyone)-1); 。代码是:

inputText

和bean代码:

selectManyCheckbox

如果<p:selectManyCheckbox id="basic" value="#{user1.selectedConsoles}"> <f:selectItem itemLabel="Xbox One SS" itemValue="XboxOne" /> <f:selectItem itemLabel="PS4 SS" itemValue="PS4" /> <f:selectItem itemLabel="Wii U SS" itemValue="WiiU" /> <p:ajax listener="#{user1.renderInput}" update="name"/> </p:selectManyCheckbox> <h:panelGroup id="name"> <p:inputText value="" rendered="#{user1.renderText}"/> </h:panelGroup> 包含(“PS4”),则显示inputText,否则将其隐藏。现在在上面的例子中,它显示我是否选择了private String[] selectedConsoles; //Setter & Getter private List<String> list = new ArrayList<String>(); //Setter & Getter private boolean renderText = false; //Setter & Getter public void renderInput() { list= Arrays.asList(selectedConsoles); if (list.contains("PS4")) { renderText = true; } else if (!list.contains("PS4")) { renderText = false; } } ,但当我解开selectManyCheckbox时,inputText将保留在表单中并且不会被隐藏。

1 个答案:

答案 0 :(得分:1)

请尝试此操作 - inputText在开始时不可见,因此无法更新。

 <h:panelGroup id="name">
      <p:inputText value="" rendered="#{user1.renderText}"/>
 </h:panelGroup>