2012-07-01 2 views
0

Я пытаюсь выяснить следующую проблему. У меня есть простой богатый: выберитеОтключение проверки selectOne при отключении

<rich:select listWidth="310" id="userSelect" value="#{departmentBacking.selectedUserId}" 
disabled="#{departmentBacking.unassignCheckbox}"enableManualInput="true" defaultLabel="#{not departmentBacking.unassignCheckbox ? 'start typing a surname...' : 'Uncheck unassign departments first'}"> 

     <f:selectItems value="#{departmentBacking.userList}" var="user" itemValue="#{user.id}" itemLabel="#{user.surname} #{user.name} - #{user.email}" /> 

</rich:select> 

Он выбирает человека, который позже назначен лидером некоторых отделов. Работает хорошо. Однако, если мне нужно только отменить назначение отделов, не выбирая новый, проблемы начнут возникать. Если выбрано значение unnassignCHeckbox, я не хочу использовать это значение вообще. Однако я не могу заставить движок jsf выполнять обратную передачу, так как я всегда получаю ошибку проверки.

MyForm:userSelect: Validation Error: Value is not valid 

Я предполагаю, что это потому, что значение по умолчанию # {user.id} является 0, и ни один пользователь с этим идентификатором не должен быть найден в USERLIST. Боб - это область видимости. Есть ли способ как-то либо пропустить проверку, либо исключить богатых: выбрать из подающей формы ?.

ответ

0

Попробуйте добавить <f:selectItem> со значением 0 и меткой "SELECT" (или что-то еще). Это решит вашу проблему и добавит подтверждение того, что если unascignCHeckbox не выбрано, значение selectedUserId должно быть больше 0 (это последнее, только если оно еще не реализовано).

<rich:select listWidth="310" id="userSelect" value="#{departmentBacking.selectedUserId}" 
    disabled="#{departmentBacking.unassignCheckbox}"enableManualInput="true" 
    defaultLabel="#{not departmentBacking.unassignCheckbox ? 'start typing a surname...' : 'Uncheck unassign departments first'}"> 

    <f:selectItem itemValue="0" itemLabel = "SELECT SURNAME" /> 
    <f:selectItems value="#{departmentBacking.userList}" var="user" 
     itemValue="#{user.id}" 
     itemLabel="#{user.surname} #{user.name} - #{user.email}" /> 

</rich:select> 
+0

Вау, я не понимал, что могу объединить f: selectItem f: selectItems. Tkinking об этом сейчас очень очевидно;) Я предполагаю, что это можно использовать как обходной путь. Спасибо Луиджи. – forest

+0

@forest Добро пожаловать. Если это ответ, который вы искали, не забудьте [отметить это сообщение как ответ] (http://meta.stackexchange.com/a/5235/182862). И добро пожаловать в StackOverflow :). –

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