单击commandLink时,inputTextArea应出现/ render。 这是我正在尝试的代码 -
<h:form id="MyForm">
<p:commandLink id="OnUseLink" style="text-align: right; vertical-align: bottom;">
<p:ajax event="click" render=":MyForm:OnUse" ></p:ajax>
<h:graphicImage styleClass="rollover imgAligntop" style="border:none;" name="plus.gif" library ="images"/>
</p:commandLink>
<p:inputTextarea id="OnUse" size="15"></p:inputTextarea>
</h:form>
有人请帮忙。
答案 0 :(得分:1)
要显示/隐藏元素,请在客户端代码中使用纯JavaScript / jQuery(示例)/其他JS库:
<p:commandLink value="Toggle" onclick="$('#MyForm\\:OnUse').toggle('slow'); return false;" />
要启用/禁用,或渲染/不渲染,请在服务器代码中添加适当的标记条件:
<p:commandLink value="Toggle" action="#{bean.action}" update="placeholder" />
<h:panelGroup id="placeholder" layout="block">
<p:inputTextarea id="OnUse" size="15" rendered="#{bean.rendered}" disabled="#{bean.disabled}" />
</h:panelGroup>
with bean:
@ManagedBean
@ViewScoped
public class Bean implements Serializable {
private boolean rendered = true;//getter
private boolean disabled = false;//getter
public String action {
//use some model condition to derive new rendered property value
rendered = !rendered;//or disabled = !disabled;
return null;
}
}
请务必了解客户端/服务器代码的区别。另请注意,JSF组件的设置属性仅在服务器上完成,否则,如果您决定通过JavaScript更改它们,则更改将不起作用。
答案 1 :(得分:0)
您不需要p:ajax来更新组件 命令按钮本身有一个更新属性 完成此方案的常用方法是将TextArea放在PanelGroup中 更新面板组&amp;将呈现应用于组件。
当以相同的形式不需要引用组件的 id附加到表单ID [formID:componentId] >。
试试这个:
<强> ToggleBean.java 强>
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean
@ViewScoped
public class ToggleBean implements Serializable {
private boolean renderer=false;
public boolean isRenderer() {
return renderer;
}
public void setRenderer(boolean renderer) {
this.renderer = renderer;
}
public void buttonAction(){
renderer = !(renderer);
}
}
XHTML页面
<h:form id="MyForm">
<p:commandLink id="OnUseLink" style="text-align: right; vertical-align: bottom;" action="#{toggleBean.buttonAction}" value="click" update="usePanelGroup">
<h:graphicImage styleClass="rollover imgAligntop" style="border:none;" name="plus.gif" library ="images"/>
</p:commandLink>
<h:panelGroup id="usePanelGroup">
<p:inputTextarea id="OnUse" size="15" rendered="#{toggleBean.renderer}" ></p:inputTextarea>
</h:panelGroup>
</h:form>
祝你好运。