我使用的是Richfaces 3.3.0,Facelelts 1.1.14和Seam 2.1.1。
我有一个问题:我的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>
提前致谢!
答案 0 :(得分:1)
删除reRender
。{/ p>的dataTable
属性
有关用法的说明,请参阅here。
此外,rich:dataTable
没有selectionMode
属性。
我建议让它使用一组最小的属性和标签(即复制粘贴示例),然后逐个添加您需要的那些,以确定问题的来源。
答案 1 :(得分:0)
这是一个会话组件,对话肯定是开始的吗?