2010-11-18 2 views
11

JSF의 드롭 다운에 구조와 같은 트리를 표시하려고합니다. 기본적으로 선택 항목은 계층 구조에 있으므로 드롭 다운에서 분명히 나타나기를 바랍니다.드롭 다운의 JSF 트리

가능합니까?

+0

트리를 콤보 상자에 넣습니다. –

+2

그는 실제로 콤보 박스 (편집 가능한 드롭 다운)가 아니라'h : selectOneMenu'처럼 드롭 다운을 의미한다고 생각합니다. – BalusC

답변

24

그래서, 당신은 기본적으로 HTML <optgroup> 줄까? SelectItemGroup을 사용하십시오.

JSF 콩 (I은 JSF 1.x에서 가정) :

private String option; // +getter +setter 
private List<SelectItem> options; // +getter 

public Bean() { 
    options = new ArrayList<SelectItem>(); 

    SelectItemGroup group1 = new SelectItemGroup("Group 1"); 
    group1.setSelectItems(new SelectItem[] { 
     new SelectItem("Group 1 Value 1", "Group 1 Label 1"), 
     new SelectItem("Group 1 Value 2", "Group 1 Label 2"), 
     new SelectItem("Group 1 Value 3", "Group 1 Label 3") 
    }); 
    options.add(group1); 

    SelectItemGroup group2 = new SelectItemGroup("Group 2"); 
    group2.setSelectItems(new SelectItem[] { 
     new SelectItem("Group 2 Value 1", "Group 2 Label 1"), 
     new SelectItem("Group 2 Value 2", "Group 2 Label 2"), 
     new SelectItem("Group 2 Value 3", "Group 2 Label 3") 
    }); 
    options.add(group2); 
} 

JSF보기 :

<h:selectOneMenu value="#{bean.option}"> 
    <f:selectItems value="#{bean.options}" /> 
</h:selectOneMenu> 

생성 된 HTML 예 :

<select name="j_idt6:j_idt7" size="1"> 
    <optgroup label="Group 1"> 
     <option value="Group 1 Value 1">Group 1 Label 1</option> 
     <option value="Group 1 Value 2">Group 1 Label 2</option> 
     <option value="Group 1 Value 3">Group 1 Label 3</option> 
    </optgroup> 
    <optgroup label="Group 2"> 
     <option value="Group 2 Value 1">Group 2 Label 1</option> 
     <option value="Group 2 Value 2">Group 2 Label 2</option> 
     <option value="Group 2 Value 3">Group 2 Label 3</option> 
    </optgroup> 
</select> 

가 브라우저에서 같이 방법 :

alt text

+2

+1 optgroup! –

+1

selectManyMenu에서 작동합니까 ??? selectManyMenu에서 이것을 사용하고 싶습니다. – deepmoteria

+4

BalusC rocks !!! – arthur

1

나는 당신이 무엇을 요구하고 있는지 잘 모르겠습니다. 메뉴의 하위 카테고리가 약간 들여 쓰기를 원한다고 가정하십시오. 그렇다면 서버 측/처리기에서 이미 "& nbsp"(공백) 또는 "-"로 구문 분석 된 항목의 배열을 보내는 방법은 어떻습니까?
즉, 자바 스크립트를 사용하여 카테고리 계층을 구문 분석하고 이해할 수 없습니다. JSF를 통해 재귀를 실행하거나 (페이지를 디자인해야하는 UI 사용자에게는 복잡하고 추악한 소리가 들린다) 서버 측에서 정렬을 수행하여 JSF에 빈약 한 들여 쓰기 된 항목을 제공하는 두 가지 옵션이 있습니다. 이 도움이

희망,

Yishai

+0

네, 저에게 맞는 옵션이 있습니다. 옵션은 카테고리로 그룹화되며 각 카테고리에는 몇 가지 옵션이 있습니다. –

0

그러나 중첩 그룹은 올바르게 시각화되지 않습니다. 그룹이 아닌 항목으로 나타납니다.

관련 문제