[
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.