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>
미리 감사드립니다!
답장을 보내 주셔서 감사합니다. reRender 특성을 제거했지만 여전히 작동하지 않습니다. 참고, 나는 페이지 속성을 지정하여 datascroller 문제를 해결했습니다. 문서별로 : " "페이지 "현재 페이지 번호를 정의하고 저장하는 데 사용되는 값 바인딩 특성입니다." 정렬에 관해서는 AJAX 요청 후에 페이지 구성 요소를 올바르게 다시 렌더링하지 못하는 것 같습니다. 사실, 아무런 효과가없는 것으로 보이는 첫 번째 요청 이후에 F5를 사용하여 새로 고치면 실제 예상대로 테이블 데이터가 표시됩니다. 이견있는 사람? – Mitchi
내가 제안한대로, 또한 richfaces의 최신 3.3.2 버전을 사용해 보았습니다. 그러나 그것은 문제를 해결하지 못했습니다. 정렬은 새로 고칠 때까지 또는 다음 요청이 발생할 때까지 테이블 데이터를 다시 렌더링하지 않습니다. – Mitchi