Jsf 2 RichFaces排序图标
我正在将richfaces 3.x应用程序迁移到4.x,在datatable上我需要添加未内置的排序功能,我已经添加了排序功能,但我需要为排序功能放置图标,如何从richfaces组件ui jar中选择图标?我应该在项目中放置新图标,然后访问它吗Jsf 2 RichFaces排序图标,jsf-2,richfaces,Jsf 2,Richfaces,我正在将richfaces 3.x应用程序迁移到4.x,在datatable上我需要添加未内置的排序功能,我已经添加了排序功能,但我需要为排序功能放置图标,如何从richfaces组件ui jar中选择图标?我应该在项目中放置新图标,然后访问它吗 <rich:dataTable id="showsEventsTable"> <rich:column sortable="true" selfSorted="true" so
<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>
如果您的应用程序迁移到了RichFaces 4.5,那么您就不需要访问排序图标——当添加排序时,它会自动显示 若应用程序迁移到了RichFaces4.x的早期版本,那个么只需在应用程序中添加3个排序图标(来自RichFaces3或RichFaces4JAR)并使用它 更新 以下是必须使用排序图标的示例:
<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的graphicImage,如order eq'ASC'?sort_acs.gif:(order eq'DESC'?sort_DESC.gif:sort_unc.gif)
我的应用程序未迁移到4.5,好的,我将向应用程序添加图标并尝试使用它们。谢谢。我添加了一个css文件,在css文件中,我有三个不同的类用于三个图像,值来自bean.sortOrder,但仍然不起作用。您的答案非常有效,感谢您及时的帮助。
<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>