【发布时间】:2013-10-04 07:45:33
【问题描述】:
我在屏幕上有两个按钮。首次加载页面时,我希望 button2 被禁用,直到 button1 被单击。 当 button1 被点击时,button2 必须被启用。
我试过了:
<p:commandButton value="Normalize"
actionListener="#{mainTable.normalize}" update="dataTable"
id="normalize" styleClass="ui-priority-primary"
style="font-size: 14px">
<f:setPropertyActionListener value="#{true}"
target="#{mainTable.disable}" />
</p:commandButton>
<p:commandButton value="To Verify Next->" action="verify.xhtml"
actionListener="#{mainTable.verify}" id="next"
styleClass="ui-priority-primary" style="font-size: 14px"
disabled="#{!(bean.disable)}">
</p:commandButton>
我的豆子:
@ManagedBean
@SessionScoped
public class MainTable
{
private boolean disable;
public MainTable()
{
disable = false;
}
public boolean isDisable()
{
return disable;
}
public void setDisable(boolean disable)
{
this.disable = disable;
}
}
但它不起作用。当我单击按钮 1 时,按钮 2 仍然被禁用。 怎么了?
【问题讨论】:
-
调试你的代码。是否设置了
disable属性?另外,当您拥有normalize动作侦听器时,为什么还要使用f:setPropertyActionListener标签?只需在调用normalize时将其设置为true。 -
我复制了你的代码,它对我来说非常有效。
-
@XtremeBiker 我也试过了(在 normalize 方法中设置)但它也不起作用。
-
抱歉是关于 line: disabled="#{!(bean.disable)}"> 应该是 mainTable.disable 问题解决了。
-
很高兴看到它成功了。尝试为您自己的问题发布答案,而不是编辑问题本身以在此处发布答案。
标签: jsf jsf-2 primefaces commandbutton