[ 
https://issues.apache.org/jira/browse/CLK-527?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bob Schellink reassigned CLK-527:
---------------------------------

    Assignee: Bob Schellink

> FormTable sort fields are not populated for render
> --------------------------------------------------
>
>                 Key: CLK-527
>                 URL: https://issues.apache.org/jira/browse/CLK-527
>             Project: Click
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.5
>            Reporter: Ben Warner
>            Assignee: Bob Schellink
>             Fix For: 2.1.0, 2.0.2, 1.5.2
>
>
> On an instance of FormTable we have the capability to set the sorted column, 
> sorted ascending, and page number values. These methods are inherited from 
> the Table class but no overridden methods are provided in Form Table.
> When the form table is rendered there are hidden form fields defined which 
> are intended to store the values of these properties but the values of these 
> hidden fields don't ever seem to be set. These hidden fields get rendered in 
> the startTag() method of the internal form...
>             buffer.append(getForm().startTag());
> Because these fields are not populated, the submit function is not aware of 
> any sorting that has been applied to the table and the values are often 
> populated into the wrong underlying objects if the default sorting of the 
> table is not the same as the explicit sorting of the table.
> I've resolved this for my application by subclassing FormTable and overriding 
> the 3 relevant methods as follows:
>     public void setSortedColumn(String columnName) {
>         Field field = (Field)getForm().getFields().get(COLUMN);
>         if(field != null){
>             field.setValue(columnName);
>         }
>         setSorted(false);
>         super.setSortedColumn(columnName);
>     }
>     public void setSortedAscending(boolean ascending) {
>         Field field = (Field)getForm().getFields().get(ASCENDING);
>         if(field != null){
>             field.setValue("" + ascending);
>         }
>         setSorted(false);
>         super.setSortedAscending(ascending);
>     }
>     public void setPageNumber(int pageNumber) {
>         Field field = (Field)getForm().getFields().get(PAGE);
>         if(field != null){
>             field.setValue("" + pageNumber);
>         }
>         super.setPageNumber(pageNumber);
>     }
> These overridden methods should be in FormTable to resolve this bug. I have 
> been working with version 1.5 so it may already be resolved in a later 
> version.
> Note also that I am calling setSorted(false) in the first 2 methods.
> BW.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to