2015-07-05 2 views
0

Мне нужна ваша помощь в включении/отключении определенного элемента в компоненте selectManyCheckbox на основе алаксирующего вызова.Как включить/отключить определенный элемент в selectManyCheckbox на ajax keyUp

При загрузке страницы, я обжиг метод ниже, чтобы заполнить 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> 

После загрузки страницы, все флажки включены и когда пользователь вводит код employeeCode в inputText, будет запущен ajax для вызова метода для получения имени employee и проверки наличия кредита или нет, если у него есть кредит, тогда флажок должен быть включен, в противном случае отключен ,

Чтобы подвести итог моей проблеме, я хочу, чтобы, когда значение переменной temp равно yes, тогда мне нужно отключить только чекбокс кредита, а другой пункт Занятость должна оставаться включенной, так как я могу это сделать?

Код боб:

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");  
} 

Так что вы можете, пожалуйста, помогите.

+0

Нет я редактировал его – 99maas

+0

@BalusC я редактировал темы, чтобы быть более ясными и объясняющий код больше, так что пожалуйста, вы можете направлять и помогать – 99maas

+0

@BalusC hrBooleanCertificate I определил его в классе hrCertificate. HrBooleanCertificate ссылается на логическое значение false, которое находится в методе init(), где в начале все флажки должны быть включены, но тогда я не знаю, что делать дальше, чтобы отключить элемент Loan – 99maas

ответ

0

Просто манипулируйте модель таким образом, чтобы itemDisabled="#{hrCertificate.hrBooleanCertificate}" оценил true вместо false, чтобы вид знал, что он должен делать.

Одним из способов могут быть:

this.hrCertificatesList.get(1).setHrBooleanCertificate(true); 
+0

Я попробую это завтра и вернусь к вам. Еще одна вещь, следует ли мне обновить @form? – 99maas

+0

Вы действительно должны обновить представление, если хотите отразить изменения в модели. – BalusC

+0

Спасибо за помощника и помощь. Он отлично работал, Awesome – 99maas

Смежные вопросы