2010-01-11 2 views
1

Richfaces 3.3.0, Facelelts 1.1.14 및 Seam 2.1.1을 사용하고 있습니다.rich : dataTable 정렬 문제 (아약스) + rich : datascroller 'next'컨트롤이 2 페이지를 통과하지 못합니다.

rich : dataTable 구성 요소 및 정렬 문제가 있습니다. 패턴을 발견했습니다 ... 열 머리글의 테이블을 처음 클릭해도 아무 효과가 없으면 모든 머리글에 대한 모든 후속 클릭이 실제로 이전에 요청 된 순서를 수행합니다. 나는 여러 가지 일을 시도했지만,이 문제를 일으키는 원인을 지적 할 수 없어 문제를 해결하기가 어렵습니다. 나는 정말로 약간의 도움에 감사 할 것이다.

테이블이 포함되어 내 .xhtml 파일의 섹션은 다음과 같습니다

<rich:contextMenu attached="false" id="menu" submitMode="ajax"> 

     <rich:menuItem ajaxSingle="true" action="#{myAction.openItem}" value="Open Report" > 

      <a4j:actionparam name="uri" assignTo="#{myAction.selectedItem.uri}" value="{uri}"/> 

     </rich:menuItem> 

     <rich:menuItem submitMode="server" action="#{myAction.openItem}" value="Open in new window" target="{uri}" onclick="window.open('', 'jsWinId', 'windth=200, height=200, resizable=0')"> 

      <a4j:actionparam name="uri" assignTo="#{myAction.selectedItem.uri}" value="{uri}"/> 

     </rich:menuItem> 

</rich:contextMenu> 


<rich:dataTable id="myTable" var="_myItem" value="#{myAction.allItems}" selectionMode="single" sortMode="single" width="100%" rows="25" reRender="myForm:myTable,ds" rowClasses="cur" onRowMouseOver="this.style.backgroundColor='#F1F1F1'" onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'" rendered="#{not empty myAction.allItems}" > 

     <rich:column id="col1" sortBy="#{_myItem.id}" sortOrder="#{myAction.sortOrder['col1']}" label="Transaction ID" width="15%"> 

      <f:facet name="header"> 

       <h:outputText value="ID"/> 

      </f:facet> 

      #{_myItem.id} 

     </rich:column> 

     <rich:column id="col2" sortBy="#{_myItem.category}" sortOrder="#{myAction.sortOrder['col2']}" label="Category" width="17%"> 

      <f:facet name="header"> 

       <h:outputText value="Category"/> 

      </f:facet> 

      #{_myItem.category} 

     </rich:column> 

<rich:column id="col3" sortBy="#{_myItem.name}" sortOrder="#{myAction.sortOrder['col3']}" label="Name" width="17%"> 

     <f:facet name="header"> 

      <h:outputText value="Name"/> 

     </f:facet> 

     #{_myItem.name} 

</rich:column> 

<rich:column id="col4" sortBy="#{_myItem.location}" sortOrder="#{myAction.sortOrder['col4']}" label="Location" width="21%"> 

     <f:facet name="header"> 

      <h:outputText value="Location"/> 

     </f:facet> 

     #{_myItem.location} 

</rich:column> 

<rich:column id="col5" sortBy="#{_myItem.status}" sortOrder="#{myAction.sortOrder['col5']}" label="Status" width="15%"> 

     <f:facet name="header"> 

      <h:outputText value="Status"/> 

     </f:facet> 

     #{myAction.statusDescription(_myItem.status)} 

</rich:column> 

<rich:column id="col6" sortBy="#{_myItem.timestamp}" sortOrder="#{myAction.sortOrder['col6']}" label="Timestamp" width="15%"> 

     <f:facet name="header"> 

      <h:outputText value="Timestamp"/> 

     </f:facet> 

     <h:outputText value="#{_myItem.timestamp}"><s:convertDateTime type="both" pattern="yyyy-MM-dd HH:mm:ss.ss"/></h:outputText> 

</rich:column> 



<f:facet name="footer"> 

     <rich:datascroller for="myTable" id="ds" renderIfSinglePage="false" ajaxSingle="false"></rich:datascroller> 

</f:facet> 



<rich:componentControl event="onRowClick" for="menu" operation="show"> 

     <f:param name="uri" value="#{_myItem.uri}"/> 

</rich:componentControl> 

미리 감사드립니다!

답변

1

reRender 속성을 dataTable에서 제거하십시오.

예를 들어 here을 참조하십시오.

또한 rich:dataTable에는 selectionMode 속성이 없습니다.

최소한의 속성 및 태그 집합 (예 : 복사하여 붙여 넣기)을 사용하고 문제가 어디에서 발생하는지 파악하기 위해 필요에 따라 하나씩 추가하는 것이 좋습니다.

+1

답장을 보내 주셔서 감사합니다. reRender 특성을 제거했지만 여전히 작동하지 않습니다. 참고, 나는 페이지 속성을 지정하여 datascroller 문제를 해결했습니다. 문서별로 : " "페이지 "현재 페이지 번호를 정의하고 저장하는 데 사용되는 값 바인딩 특성입니다." 정렬에 관해서는 AJAX 요청 후에 페이지 구성 요소를 올바르게 다시 렌더링하지 못하는 것 같습니다. 사실, 아무런 효과가없는 것으로 보이는 첫 번째 요청 이후에 F5를 사용하여 새로 고치면 실제 예상대로 테이블 데이터가 표시됩니다. 이견있는 사람? – Mitchi

+0

내가 제안한대로, 또한 richfaces의 최신 3.3.2 버전을 사용해 보았습니다. 그러나 그것은 문제를 해결하지 못했습니다. 정렬은 새로 고칠 때까지 또는 다음 요청이 발생할 때까지 테이블 데이터를 다시 렌더링하지 않습니다. – Mitchi

0

대화 구성 요소에 있나요? 대화가 시작 되었습니까?

관련 문제