On 7/27/07, Renzo Tomaselli <[EMAIL PROTECTED]> wrote:
> Hi, I'm a bit confused about how to prepare a tr:table for sorting.
> First, I miss the rationale behind the sortProperty attribute. Since
> visual appearance (and next action) occurs on a given column - which is
> bound to a model property - why do we need to specify a further property
> name to sort on ?

The column itself isn't really bound to a model property per se.
Components within it are, and might even be bound to multiple
properties, or bound in a weird way, etc.

sortProperty is used to create SortCriterion objects that can be
passed to the CollectionModel.setSortCriteria() method.

> Then I noticed from a previous message that sortProperty does not accept
> EL, just literal strings. In case of dynamic columns (I use c:forEach),
> this should mean that I cannot sort on any column, since I cannot
> specify a dynamic sortProperty name.

Dynamic sortProperty still works.  It's just that your EL binding
is to a literal string.

The limitation here is just that you can't have:
  <tr:column sortProperty="#{row.name.first}">
... and expect that to sort the first name.

Nor, if you're just using our default SortableModel wrapper
(which performs all sorting in-memory), can you use:
  <tr:column sortProperty="name.first"/>
... but that's a limitation of SortableModel, not sortProperty.

Finally, the "sortable" property is there to turn off sorting
for a column.  Removing sortProperty also does this,
but there are cases where you might want to dynamically
turn sorting on and off, and doing it via a sortable property
is clearer.

-- Adam


> Is that correct ? Is there any way
> to shortcut sortProperty to the current column ?
> Furthermore, could anybody please explain the usage of requested methods
> isSortable, setSortCriteria, getSortCriteria ? I use my own Collection
> model, which is presumed to export these methods to enable sorting, but
> I miss any involved semantics.
> There is nothing about on demos, wiki and general Trinidad documentation.
>
>

Reply via email to