For some reason when I do an ajax refresh of the DefaultDataTable in
wicket-phonebook, the FilterToolbar disappears.  I see it in the Ajax
Debugger, but it doesn't display on the screen.  This is only
happening in FF, not IE (only tested on WinXP).

I cannot see any difference between the html that is rendered when the
page is loaded vs. when the ajax refresh happens.  But FF decides to
not render the FilterToolbar after the ajax refresh, while IE does
render it.

I'm wondering if FF has issues with invalid HTML?  The FilterToolbar
puts a <form> around a <tr></tr> and adds a span inside the form, but
outside the <tr></tr>.  However, I don't understand why it would only
have a problem after the ajax render and not the original page render.

Here are the only code changes to ListContactsPage::

public ListContactsPage() {
        addCreateLink();
        IColumn[] columns = createColumns();
        // set up data provider
        ContactsDataProvider dataProvider = new ContactsDataProvider(dao);
        // create the data table
        final DefaultDataTable users = new DefaultDataTable("users", Arrays
                        .asList(columns), dataProvider, 10);
        users.addTopToolbar(new FilterToolbar(users, dataProvider));
        users.setOutputMarkupId(true);
        add(users);

        add(new AjaxLink("refresh") {
                @Override
                public void onClick(AjaxRequestTarget target)
                {
                        target.addComponent(users);
                }
        });
}

And add this to the markup:

<a href="#" wicket:id="refresh">Refresh</a>

Note that this is a simple case to illustrate the problem.  In my
case, I'm using ModalWindows to edit the data, and on window close,
the data table is refreshed.

Any idea what is causing this?  Is it the invalid markup?  Any
thoughts on a solution?

Thanks,
Tauren

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to