2011-02-05 7 views
2

다음과 같은 데이터 테이블이 있습니다.JSF : 어떻게 dataTable에 빈 행을 추가합니까?

<h:dataTable id="box-score-away" value="#{individualAwayBoxScoreQuery.resultList}" var="_bssl"> 
    <f:facet name="header"> 
    <h:outputText value="Away Team" /> 
    </f:facet> 
    <h:column> 
    <f:facet name="header"> 
     <h:outputText value="Name" /> 
    </f:facet> 
    <h:outputText value="#{_bssl.name}" /> 
    <f:facet name="footer"> 
     <h:outputText value="&#931;" styleClass="bold" /> 
    </f:facet> 
    </h:column> 
    ... 
</h:dataTable> 

결과 목록에 요소가 없으면 테이블의 tbody가 비어있게됩니다. Firefox에는 문제가 있으며 페이지 렌더링은 정말 엉망입니다.

결과 목록이 비어 있으면 tbody에 행을 어떻게 추가합니까?

행은 10의 colspan을 갖는 td로 가정됩니다. 성공하지 않고 몇 가지 시도를했습니다. (참고로, 조건에 대한 것이 아니라 사용하려는 구성 요소와 위치) f : 축 어적으로 갈 길인가?

답변

2
#{individualAwayBoxScoreQuery.resultList} 

모델에서 처리 할 수 ​​있습니다. 조건부로 하나의 빈 빈을 포함하는 List을 반환하십시오 (나는 Map도 그렇게 할 것입니다). 이를 수행하는 방법은 여러 가지가 있습니다. EL 기능;

메모리 서버 인 경우 MyFaces는 자동으로 유효한 XHTML을 생성합니다.

+0

흠 10의 colspan으로 td 태그를 생성하는 솔루션을 찾고있었습니다. 더미 목록 요소가 작동하지 않습니다. – Kawu

+0

@Kawu - 기본 테이블 렌더러는이 작업을 수행하지 않습니다. 나는 당신이 table에 renderered 속성을 넣고 테이블이나 빈 그대로의 축 어적을 조건부로 렌더링 할 수 있다고 생각한다. 자바 스크립트로도 할 수 있다고 생각합니다. – McDowell

3

나는 비슷한 문제가있어서 테이블 보디에 <tr>을 추가하기 위해 도장을 사용했다. 이 아래와 같이 보일 수 위의 예를 들어

:

dojo.addOnLoad(function(){ 

if(dojo.isMozilla) { 
    var bodyElem = dojo.query(".yourTablesStyleClass tbody")[0]; 

    dojo.create("tr", null, bodyElem, "last"); 

} }); 
0

클래스에 빈 콩을 추가 및 conditionlly 열을 렌더링 나 테이블의 맨 아래에 빈 행을 만드는 데 도움을 주었다.

 add a new boolean to the bean say dummyRow 
     then set bean.setName(".") 
       bean.setDummyRow(true); 
     resultList.add(bean) 

    Now in the jsp you need to chang like this 
    <h:outputText value="#{_bssl.name}" rendered="{!_bssl.dummyRow}"/> 

이렇게하면 내 문제가 해결되도록 하단에 빈 행을 만들 수 있습니다. 내 문제는 수평 스크롤 막대로 인해 맨 아래 줄을 볼 수 없었습니다.

관련 문제