如何 enable/disable selectManyCheckbox 中的特定项目 ajax keyUp
How to enable/disable specific item in selectManyCheckbox on ajax keyUp
我需要你的帮助 enabling/disabling 基于 ajax 调用 keyup 的 selectManyCheckbox
组件中的特定项目。
当页面加载时,我将触发以下方法来填充表单中的 selectManyCheckbox
项:
@PostConstruct
public void init() throws SQLException {
this.hrCertificatesList.add(new hrCertificate(("Employment"), "CE", false));
this.hrCertificatesList.add(new hrCertificate(("Loan"), "LC", false));
}
这是 jsf 代码:
<p:inputText id="selectedEmployee" value="#{HRRequest.selectedEmployeeCode}">
<p:ajax event="keyup" update="employeeName" listener="#{HRRequest.getEmployeeName}" />
</p:inputText>
<h:outputText id="employeeName" value="#{HRRequest.selectedEmployeeName}" />
<p:selectManyCheckbox id="hrCertificates" value="#{HRRequest.selectedHRCertificates}">
<f:selectItems value="#{HRRequest.hrCertificatesList}" var="hrCertificate"
itemLabel="#{hrCertificate.hrCertificateName}"
itemValue="#{hrCertificate.hrCertificateCode}" itemDisabled="#{hrCertificate.hrBooleanCertificate}"/>
</p:selectManyCheckbox>
页面加载后,所有复选框都被启用,当用户在 inputText
中输入 employeeCode 时,将触发 ajax 以调用方法来获取 employeeName 并检查是否是否有贷款,如果有贷款,则复选框应启用,否则禁用。
总结一下我的问题,我想要的是当变量 temp 的值等于 yes 时,我只需要禁用 loan 复选框,而其他项目 Employment 应该保持启用,那么我该怎么做?
bean代码为:
public String getEmployeeName() throws SQLException {
if (temp.equals("Yes"))
{
//How to enable and disable the Loan checkbox only and to update the form view
RequestContext.getCurrentInstance().update(":HRform:hrCertificates");
}
所以请你帮忙。
只需以 itemDisabled="#{hrCertificate.hrBooleanCertificate}"
评估 true
而不是 false
的方式操作模型,以便视图知道它必须做什么。
一种方式可能是:
this.hrCertificatesList.get(1).setHrBooleanCertificate(true);
我需要你的帮助 enabling/disabling 基于 ajax 调用 keyup 的 selectManyCheckbox
组件中的特定项目。
当页面加载时,我将触发以下方法来填充表单中的 selectManyCheckbox
项:
@PostConstruct
public void init() throws SQLException {
this.hrCertificatesList.add(new hrCertificate(("Employment"), "CE", false));
this.hrCertificatesList.add(new hrCertificate(("Loan"), "LC", false));
}
这是 jsf 代码:
<p:inputText id="selectedEmployee" value="#{HRRequest.selectedEmployeeCode}">
<p:ajax event="keyup" update="employeeName" listener="#{HRRequest.getEmployeeName}" />
</p:inputText>
<h:outputText id="employeeName" value="#{HRRequest.selectedEmployeeName}" />
<p:selectManyCheckbox id="hrCertificates" value="#{HRRequest.selectedHRCertificates}">
<f:selectItems value="#{HRRequest.hrCertificatesList}" var="hrCertificate"
itemLabel="#{hrCertificate.hrCertificateName}"
itemValue="#{hrCertificate.hrCertificateCode}" itemDisabled="#{hrCertificate.hrBooleanCertificate}"/>
</p:selectManyCheckbox>
页面加载后,所有复选框都被启用,当用户在 inputText
中输入 employeeCode 时,将触发 ajax 以调用方法来获取 employeeName 并检查是否是否有贷款,如果有贷款,则复选框应启用,否则禁用。
总结一下我的问题,我想要的是当变量 temp 的值等于 yes 时,我只需要禁用 loan 复选框,而其他项目 Employment 应该保持启用,那么我该怎么做?
bean代码为:
public String getEmployeeName() throws SQLException {
if (temp.equals("Yes"))
{
//How to enable and disable the Loan checkbox only and to update the form view
RequestContext.getCurrentInstance().update(":HRform:hrCertificates");
}
所以请你帮忙。
只需以 itemDisabled="#{hrCertificate.hrBooleanCertificate}"
评估 true
而不是 false
的方式操作模型,以便视图知道它必须做什么。
一种方式可能是:
this.hrCertificatesList.get(1).setHrBooleanCertificate(true);