【问题标题】:rich:dataTable sorting issue (ajax) + rich:datascroller 'next' control does not go passed page 2rich:dataTable 排序问题 (ajax) + rich:datascroller 'next' 控件未通过第 2 页
【发布时间】:2010-01-11 19:52:49
【问题描述】:

我正在使用 Richfaces 3.3.0、Faceelts 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>

提前致谢!

【问题讨论】:

    标签: ajax jsf seam richfaces


    【解决方案1】:

    删除dataTablereRender 属性。

    查看here的用法示例。

    另外,rich:dataTable 没有 selectionMode 属性。

    我建议使用最少的属性和标签集(即复制粘贴示例),然后逐个添加您需要的属性和标签,以确定问题出在哪里。

    【讨论】:

    • 感谢您的回复。我删除了 reRender 属性,但它仍然不起作用。请注意,我通过指定其 page 属性解决了 datascroller 问题。根据文档:““页面”是用于定义和保存当前页码的值绑定属性。”至于排序,它似乎是在 AJAX 请求之后无法正确重新渲染页面组件。事实上,我发现在第一个请求之后用 F5 刷新似乎没有效果,实际上以预期的顺序显示表数据。有什么想法吗?
    • 我按照你的建议做了,还尝试了更新的 3.3.2 版本的richFaces。但它并没有解决问题。在刷新或下一个请求之前,排序不会重新呈现表数据...
    【解决方案2】:

    这是在对话组件中,对话肯定开始了吗?

    【讨论】:

      猜你喜欢
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多