This is your problem (I think):

In DataTable, when a toolbar is added, it is calling:
toolbar.setRenderBodyOnly(true);
Hence, the error message.

Try seeing if you can add the entire table to the AJAX target (or any outer
container of it) so that the entire thing is repainted.

-- 
Jeremy Thomerson
http://www.wickettraining.com

On Tue, Jan 20, 2009 at 4:27 PM, Ryan O'Hara <oh...@genome.chop.edu> wrote:

> I've created a customized CnvHeaderToolbar which like HeadersToolbar
> extends AbstractToolbar.  In addition to the header title, I also have
> inserted a triangle image that helps to display sort order and sort order
> direction.  The problem I am having is that I have been unable to figure out
> how to reload CnvHeaderToolbar when an OrderByLink is clicked, so that the
> new sort order triangle image can be displayed.  I've have also created
> custom CnvOrderByBorder and CnvOrderByLink objects.  I have hooked into
> these two classes onClick/onSortChanges, so that I have access to the
> AjaxRequestTarget from CnvOrderByLink in CnvHeaderToolbar.  Below is some
> code:
>
> CnvHeaderToolbar:
>
> protected WebMarkupContainer newSortableHeader(String headerId, String
> property,
>                                                   ISortStateLocator
> locator, PageParameters params, Class page) {
>        return new CnvOrderByBorder(headerId, property, locator) {
>
>            private static final long serialVersionUID = 1L;
>
>            public void onClick() {
>                System.out.println("In newSortableHeader: OnClick()");
>                ((CnvDataTable) getTable()).setHeaderClicked(true);
>            }
>
>            protected void onSortChanged(AjaxRequestTarget target) {
>                System.out.println("In newSortableHeader: OnSortChanged()");
>                ((CnvDataTable) getTable()).setHeaderClicked(true);
>                //target.addComponent();
>            }
>        };
>
>    }
>
> The latest I error I got when trying to reload CnvHeaderToolbar in the
> onSortChanged() method above is:
>
> "Ajax render cannot be called on component that has setRenderBodyOnly
> enabled."
>
> Any advice on how to reload the HeadersToolbar?  The actual sorting is
> working, it's just that the triangle images are not being reloaded.  Any
> help would be greatly appreciated.
>
> Thanks,
> Ryan
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

Reply via email to