Java 单击p:selectBooleanCheckbox应启用/禁用输入文本
选中复选框后,应启用相应的输入文本。但未设置permit属性,也未调用updateRoles侦听器。我没有任何例外,没有任何迹象表明出了什么问题。我使用的是PrimeFaces3.4,Mojarra 2.0.8Java 单击p:selectBooleanCheckbox应启用/禁用输入文本,java,jsf,jsf-2,primefaces,Java,Jsf,Jsf 2,Primefaces,选中复选框后,应启用相应的输入文本。但未设置permit属性,也未调用updateRoles侦听器。我没有任何例外,没有任何迹象表明出了什么问题。我使用的是PrimeFaces3.4,Mojarra 2.0.8 <p:dataTable id="databases" var="database" value="#{mssqlAccDBAccess.databases}" sortBy="#{database.name}" resizableColumns="false">
<p:dataTable id="databases" var="database" value="#{mssqlAccDBAccess.databases}"
sortBy="#{database.name}" resizableColumns="false">
<p:column headerText="#{label.mssqlDatabasePermission}">
<p:selectBooleanCheckbox value="#{database.permit}"
disabled="#{not enabled}">
<p:ajax listener="#{mssqlAccDBAccess.updateRoles}" update="user" />
<f:attribute name="selectedRecord" value="#{database}" />
</p:selectBooleanCheckbox>
</p:column>
<p:column headerText="#{label.mssqlDatabaseName}"
sortBy="#{database.name}">
<h:outputText value="#{database.name}" />
</p:column>
<p:column headerText="#{label.mssqlDatabaseUser}">
<p:inputText id="user" disabled="#{not database.permit or not enabled}"
value="#{database.user}">
</p:inputText>
</p:column>
</p:dataTable>
我添加了
。它不存在,因为我不认为它是相关的。< /P>尝试删除<代码>禁用=“{{不启用}”< /COD> >什么是<代码>启用< /代码>?它不应该是某个托管bean属性吗?启用是作为ui:param传递的布尔值。此facelet包含在另一个JSF页面中。您是否检查了
是否显示了预期值?另外,您的mssqlaccdaccess
bean在哪个范围内?h:outputText
显示一个真实值mssqlaccdaccess
是一个会话范围的托管bean。在您的位置上,我可以通过使用表单包装表并直接访问这个xhtml来简化这个过程,而不是添加一些东西来查看是什么导致了这种奇怪的行为……尝试删除禁用的=“#{not enabled}”
启用的是什么?它不应该是某个托管bean属性吗?启用是作为ui:param传递的布尔值。此facelet包含在另一个JSF页面中。您是否检查了
是否显示了预期值?另外,您的mssqlaccdaccess
bean在哪个范围内?h:outputText
显示一个真实值mssqlaccdaccess
是一个会话范围的托管bean。在您的位置上,我将通过使用表单包装表并直接访问此xhtml来简化此过程,而不是添加内容来查看导致此奇怪行为的原因。。。
public void updateRoles(AjaxBehaviorEvent event) {
SelectBooleanCheckbox permit = (SelectBooleanCheckbox) event.getComponent();
boolean checked = (Boolean) permit.getValue();
if (checked) {
Database database = (Database) permit.getAttributes().get("selectedRecord");
showRoles(database.getRoles());
} else {
hideRoles();
}
}