2017-10-25 3 views
0

PrimeFaces 6.1 SelectOneMenu를 사용하여 itemLabel/value가 selectItems 인 편집 가능한/필터링 된 드롭 다운 메뉴를 렌더링합니다. 불행히도 selectOneMenu는 itemLabel을 값으로 내 selectOneMenu 값 필드에 넣습니다. 이것은 매우 성가신 문제이며 아마도 버그입니다.Primefaces 6.1 SelectOneMenu 값으로 itemLabel을 선택하십시오.

<p:selectOneMenu id="selectCustomerId" value="#{paymentControlBean.selectedCustomerId}" effect="fold" editable="true" filter="true" filterMatchMode="startsWith"> 
    <p:ajax update="paymentListToolbar"/> 
    <f:selectItems value="#{hm.entrySet()}" var="entry" itemValue="#{entry.key}" itemLabel="#{entry.value}"/> 
</p:selectOneMenu> 

:

Map<String,String> hm = new HashMap<String, String>(); 
hm.put("Cust001","John Dow"); 
hm.put("Cust002","Mark Polo"); 
hm.put("Cust003","Noel Max"); 

다음 나는 나의 selectOneMenu에 넣어 : 나는 selectItems 같은 ID/이름 쌍을 유지하기 위해지도를 사용하고

:

내 코드 조각이있다 드롭 다운 목록 렌더링은 잘 작동하지만 드롭 다운 목록에서 하나를 선택하고 처리하면됩니다. 내 backing bean paymentControlBean.selectedCustomerId는 "John Dow"를 표시합니다. 즉, selectOneMenu는 내 itemLabel을 selectOneMenu의 value 필드로 가져옵니다.

PrimeFaces 요소를 p : selectOneListBox로 변경하려고 시도했지만 모든 변경 사항을 유지하고 처리를 반복하면 내 백업 빈이 올바르게 작동하는 "Cust001"을 표시합니다.

이 비교에서 나는 PrimeFaces 6.1에 심각한 버그가 존재해야한다는 것을 알아 냈고, PrimeFaces 5.2에서도 같은 버그가 존재한다는 것을 알았습니다.

SelectOneMenu는 특히 Map을 사용하여 키/값 쌍을 처리해야하는 경우 드롭 다운 목록 선택에서 매우 유명합니다.

버그가 아닌 경우 selectItems에서 올바른 값을 선택하도록 다른 작업을 수행 할 수 있습니까?

알려 주시기 바랍니다>

+0

이 문제로 이슈 트래커에서 PrimeFaces에 추가되었습니다에 나오는 6.2 출시 음, 다음을 찾으십시오 : https://github.com/primefaces/primefaces/issues/2862 –

+1

Primefaces 5.3에서 작동합니까? 우리는 응용 프로그램에서 selectOneMenues를 아무런 문제없이 사용합니다 (최신 primeface 엘리트 릴리스에서, 그러나 5.3에서도 모든 것이 괜찮습니다). 차이점은 우리가 효과가 없으며 편집 및 필터링 할 수 없다는 것입니다. 필터를 제거하고 편집하고 효과를 시도 했습니까? 오류가이 추가 속성 중 하나에 의해 발생했을 수도 있습니다. – lastresort

+0

상기시켜 줘서 고맙습니다. ID와 값 필드를 제외한 모든 것을 종료하고 다시 컴파일하고 다시 실행하면 정상적으로 작동합니다. 그 이후로 editable, filter, filterMatchMode를 추가하고 다시 테스트합니다. 죽은. 즉, 동시에 편집 할 수 있고 필터가있는 selectItems (itemLabel/Value 쌍) 인 경우 selectOneMenu에서 itemLabel을 Value로 선택합니다. –

답변

관련 문제