【问题标题】:RichFaces Sorting IconRichFaces 排序图标
【发布时间】:2015-12-15 08:21:33
【问题描述】:

我正在将 Richfaces 3.x 应用程序迁移到 4.x,在数据表上我需要添加未内置的排序功能,我添加了排序功能但我需要为排序功能放置图标,如何我要从richfaces 组件ui jar 中选择图标吗?我应该在项目中放置新图标然后访问它吗?

  <rich:dataTable id="showsEventsTable">

     <rich:column sortable="true" selfSorted="true" 
                    sortBy="#{show.name}" sortorder="SortOrder.ascending" sortOrder="#{sortingBean.showNameOrder}">
                    <f:facet name="header">
                        <a4j:commandLink value="Show Name" render="showsEventsTable" action="#{sortingBean.sortByShowName()}"
                        styleClass="sortingColumn" status="waitStatus">
                          <span styleClass="#{sortingBean.sortOrder}"/>
                            <h:graphicImage value="??(what should go here if am accessing richfaces components jar)" library="org.richfaces"/>
                       </a4j:commandLink>
                    </f:facet>
                    <h:outputText value="#{show.name}" />
                </rich:column>

   </rich:dataTable>

在css文件中

    .ascending{
       background-image: url("imgpath");
     } 

  .descending{
     background-image: url("imgpath");
  } 

  .unsorted{
     background-image: url("imgpath");
  } 

【问题讨论】:

    标签: jsf-2 richfaces


    【解决方案1】:

    如果您的应用程序已迁移到 RichFaces 4.5,那么您无需访问排序图标 - 添加排序时它会自动显示。

    如果应用程序迁移到以前版本的 RichFaces 4.x,则只需在应用程序中添加 3 个排序图标(来自 RichFaces 3 或 RichFaces 4 jar)并使用它。

    更新

    以下是必须使用排序图标的示例:

    <rich:column id="date" sortBy="#{rs.changeDate}" sortOrder="descending">
        <f:facet name="header">
            <h:commandLink value="#{msg.entryDate}" styleClass="tableColumnHeader">
                <rich:componentControl target="noteTable" operation="sort">
                    <f:param name="column" value="date" />
                    <f:param value="" />
                    <f:param name="reset" value="true" />
                </rich:componentControl>
                <h:graphicImage value="/images/sort/sort_asc.gif"
                    style="border: 0px; vertical-align: middle;"
                    rendered="#{chNotesAction.list.order == 'changeDate ASC'}" />
                <h:graphicImage value="/images/sort/sort_des.gif"
                    style="border: 0px; vertical-align: middle;"
                    rendered="#{chNotesAction.list.order == 'changeDate DESC'}" />
                <h:graphicImage value="/images/sort/sort_uns.gif"
                    style="border: 0px; vertical-align: middle;"
                    rendered="#{chNotesAction.list.order != 'changeDate ASC'
                        and chNotesAction.list.order != 'changeDate DESC'}" />
            </h:commandLink>
        </f:facet>
        <h:outputText value="#{rs.changeDate}">
            <f:convertDateTime timeZone="#{referenceData.timezone}" pattern="MMM dd, yyyy HH:mm" />
        </h:outputText>
    </rich:column>
    

    您可以将 1 个带有 EL 的图形图像用于 value 属性,例如 order eq 'ASC' ? sort_acs.gif : (order eq 'DESC' ? sort_desc.gif : sort_unc.gif)

    【讨论】:

    • 我的应用程序没有迁移到 4.5,好的,我会将图标添加到应用程序并尝试使用它们。谢谢。
    • 我添加了一个 并且在 css 文件中我为三个图像有三个不同的类,其值来自 bean.sortOrder 但仍然无法正常工作.
    • 您的回答非常好,感谢您的及时帮助。
    猜你喜欢
    • 1970-01-01
    • 2010-11-10
    • 2015-02-07
    • 2011-04-12
    • 2011-02-27
    • 2010-09-13
    • 1970-01-01
    • 2012-12-18
    • 2011-06-24
    相关资源
    最近更新 更多