Add AjaxFormChoiceComponentUpdatingBehavior to the CheckGroup

On Wed, Aug 10, 2011 at 4:38 AM, bad boy <badmas...@yahoo.com> wrote:
> On my Wicket page, I have a form with a couple of TextFields and a paginated 
> List of Checkboxes implemented with Dataview and and a sortable data 
> provider.  The ajax pagination of the dataview works fine.
>
> The problem is that when I select a few items on Page 1 and then go to Page 2 
> and then return to Page 1 using the AjaxPagingNavigator, the selection is 
> lost : the items that were checked on Page 1 initially do no have the "check 
> mark" anymore.
>
> What should I do so that the items that were selected on a page of Dataview 
> do not get lost when the AjaxPagnigaion is used to traverse the pages of the 
> Dataview ?
>
>
>
> public final class AjaxFormWithPaginatedCheckBoxPage extends BasePage {
>
> static Logger logger = 
> Logger.getLogger(AjaxFormWithPaginatedCheckBoxPage.class);
> private Person person = new Person();
> int counter = 0;
>
> WebMarkupContainer webMC;
> static List<Person> pList=Person.getPersons(100);
> int maxListCount=5;
> DataView dv;
> CheckGroup group;
> public AjaxFormWithPaginatedCheckBoxPage() {
>     super();
>     final Form form = new Form("form", new CompoundPropertyModel(person)) {
>
>         protected void onSubmit() {
>             logger.info("form recived");
>             logger.info(" person name " + person.getName());
>
>             setResponsePage(new AjaxTogglePanelTestPage());
>         }
>     };
>     final TextField name = new TextField("name");
>     final TextField age = new TextField("age");
>     form.add(name);
>     form.add(age);
>
>
>     group=new CheckGroup("group", new ArrayList());
>     form.add(group);
>
>     webMC= new WebMarkupContainer("webMC");
>     webMC.setOutputMarkupId(true);
>
>
>     SortablePersonDataProvider personDataProvider=new 
> SortablePersonDataProvider(pList);
>     dv = new DataView<Person>("persons", personDataProvider) {
>
>         @Override
>         protected void populateItem(Item<Person> item) {
>             item.add(new Check("check", item.getModel()));
>
>             item.add(new Label("id", new PropertyModel(item.getModel(), 
> "id")));
>             item.add(new Label("name", new PropertyModel(item.getModel(), 
> "name")));
>             item.add(new Label("age", new PropertyModel(item.getModel(), 
> "age")));
>         }
>
>
>     };
>     dv.setItemsPerPage(maxListCount);
>
>
>     webMC.add(new AjaxFallbackOrderByBorder("orderByID", "id", 
> personDataProvider)
>     {
>         @Override
>         protected void onSortChanged()
>         {
>             dv.setCurrentPage(0);
>         }
>
>         @Override
>         protected void onAjaxClick(AjaxRequestTarget target) {
>             target.addComponent(webMC);
>         }
>     });
>
>     webMC.add(new AjaxFallbackOrderByBorder("orderByName", "name", 
> personDataProvider)
>     {
>         @Override
>         protected void onSortChanged()
>         {
>             dv.setCurrentPage(0);
>         }
>
>         @Override
>         protected void onAjaxClick(AjaxRequestTarget target) {
>             target.addComponent(webMC);
>         }
>     });
>     webMC.add(new AjaxFallbackOrderByBorder("orderByAge", "age", 
> personDataProvider)
>     {
>         @Override
>         protected void onSortChanged()
>         {
>             dv.setCurrentPage(0);
>         }
>
>         @Override
>         protected void onAjaxClick(AjaxRequestTarget target) {
>             target.addComponent(webMC);
>         }
>     });
>
>
>     webMC.add(dv);
>     webMC.add(new AjaxPagingNavigator("navigator",dv));
>     group.add(webMC);
>
>     AjaxButton ab = new AjaxButton("ajax-button", new 
> PropertyModel<String>(this,
>             "counter"), form) {
>
>         @Override
>         protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
>             counter++;
>             logger.info("ajx form recived");
>             logger.info("ajx person name " + person.getName());
>
>             target.addComponent(this);
>
>         }
>     };
>     form.add(ab);
>     form.setDefaultButton(ab);
>
>     add(form);
> }
> }
>
> Thanks
> Badmash
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to