我在Primefaces中动态创建了CommandButton。
我想在用户点击(提交)后禁用按钮。我曾尝试过两种方式:
commandButton.setWidgetVar("pony");
)属性添加到我的commandButton并设置onclick行为(commandButton.setOnclick("PF('pony').disable();");
)。 WidgetVar属性在页面上的所有元素中是唯一的。这种方法不起作用 - 点击后我的按钮变为禁用,然后立即返回启用。setDisabled
UiComponent
上的((CommandButton) component).setDisabled(true);
方法,从managedBean。这也行不通。有没有其他方法可以从Java代码中禁用CommandButton或者我错过了什么?
我动态生成了我的页面,所以我不能在xhtml中使用disabled属性。
我还设置了commandButton update属性来更新父p:outputPanel
。
提前致谢。
答案 0 :(得分:1)
点击后,我的按钮变为禁用,然后立即返回启用。
如果ajax update
覆盖按钮本身,就会发生这种情况。只需从中排除按钮,只指定真正需要更新的部分。
答案 1 :(得分:0)
你可以在bean中声明一个字段
boolean disable = false;
单击收听者中的按钮后:
disable = true;
按钮中的使用此代码:
<p:commandButton id="x" disabled="#{bean.disable}" update="@form:x" />