如何使用中的字母排序在 processSort() 之上
我的应用程序有一个 af:table,它有一个名为 serverName 的伪列以及其他列。 (通过伪列,我的意思是 - 它只是一个 UI 列,它没有相应的 DB 列)。
为了排序,我们重写了 SortListener 的 processSort(sortColumn, sortOrder) 方法。
它的工作原理如下: 1)接收sortColumn并查询数据库 2)使用 orderBy 子句 3) 获取结果,然后显示在 UI 上
现在就我而言,由于我的列 (serverName) 没有对应的 DB 列,所以我想超越此方法并使用 ADF 默认的字母排序。 我该怎么做?
如果 sortColum 与 serverName 匹配,我尝试从该方法返回,但最终不会对任何内容进行排序。
My Application has an af:table and it has a psuedo-column named serverName along with other columns. (By psuedo-column, i mean - it is just a UI column, it doesn't have a corresponding DB column).
For sorting, we have overriden processSort(sortColumn, sortOrder) method of SortListener.
It works like this:
1) takes in sortColumn and queries the DB
2) using orderBy clause
3) fetches the results and then displays on UI
Now in my case, since my column (serverName) has no corresponding DB column, I want to surpass this method and use the default alphabetical sorting of ADF.
How do i do that?
I tried returning from this method if sortColum matches serverName, but that ends up in not sorting anything.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
setSortBy()
方法。请阅读 Fusion Developers 中的本节指导。
39.5.2 对内存中的视图对象行进行排序
要在运行时对视图对象中的行进行排序,请使用
setSortBy()
方法。您传递一个类似于 SQL ORDER BY 子句的排序表达式。但是,您可以使用视图对象的属性名称,而不是引用表的列名称。例如,对于包含名为 Customer 和 DaysOpen 的属性的视图对象,您可以首先按 Customer 降序对视图对象进行排序,然后按 DaysOpen 排序,方法是调用:setSortBy("Customer desc, DaysOpen");
或者,您可以在排序子句中使用从零开始的属性索引位置,如下所示:
setSortBy("3 desc, 2");
调用
setSortBy()
方法后,下次调用executeQuery()
方法时将对行进行排序。Use the
setSortBy()
method.Read this section in the Fusion Developers Guide.
39.5.2 Sorting View Object Rows In Memory
To sort the rows in a view object at runtime, use the
setSortBy()
method. You pass a sort expression that looks like aSQL ORDER BY
clause. However, instead of referencing the column names of the table, you use the view object's attribute names. For example, for a view object containing attributes named Customer and DaysOpen, you could sort the view object first by Customer descending, then by DaysOpen by calling:setSortBy("Customer desc, DaysOpen");
Alternatively, you can use the zero-based attribute index position in the sorting clause like this:
setSortBy("3 desc, 2");
After calling the
setSortBy()
method, the rows will be sorted the next time you call theexecuteQuery()
method.