You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Tito <nj...@gmail.com> on 2010/10/01 02:00:15 UTC

Re: Forms ajax doesn't update components models

Here is the panel java source (reduced):

public class DispositivoPanel extends Panel {

    public DispositivoPanel(String id, final IModel<DispositivoDTO> model) {
        super(id);

        // creo el formulario de usuario
        Form<Void> form = new Form<Void>("registracion") {

            @Override
            protected void onSubmit() {
                DispositivoPanel.this.onSubmit(model);
            }
        };

        form.add(new RequiredTextField<String>("nombre", new
PropertyModel<String>(model, "nombre")));

        final WebMarkupContainer contenedorInfo = new
WebMarkupContainer("contenedor_info");
        contenedorInfo.setOutputMarkupId(true);

        // Seleccionador de tipo de dispositivo.
        List<TipoDispositivo> tipos = new ArrayList<TipoDispositivo>();
        tipos.add(TipoDispositivo.BASE);
        tipos.add(TipoDispositivo.AUTO);
        tipos.add(TipoDispositivo.PERSONA);

        DropDownChoice<TipoDispositivo> drop = new
DropDownChoice<TipoDispositivo>("tipo",
                new PropertyModel<TipoDispositivo>(model, "tipo"), tipos,
new TipoDispositivoRenderer());
        drop.add(new AjaxFormComponentUpdatingBehavior("onChange") {

            @Override
            protected void onUpdate(AjaxRequestTarget target) {
                target.addComponent(contenedorInfo);
            }
        });
        form.add(drop);

        // creamos los paneles de info
        contenedorInfo.add(new AutoInfoPanel("auto_info_panel", model) {

            @Override
            public boolean isVisible() {
                return
model.getObject().getTipo().equals(TipoDispositivo.AUTO);
            }
        });
        contenedorInfo.add(new PersonaInfoPanel("persona_info_panel", model)
{
            @Override
            public boolean isVisible() {
                return
model.getObject().getTipo().equals(TipoDispositivo.PERSONA);
            }
        });

        form.add(contenedorInfo);

        add(form);
    }

    protected void onSubmit(IModel<DispositivoDTO> model) {
    }
}


And here html of panel:

<wicket:panel>
    <div wicket:id="feedback" />
    <form wicket:id="registracion" name="dispositivo_form">
    <fieldset><legend>InformaciĆ³n del dispositivo:</legend>
    <ol>
        <li>
            <label>Nombre del Dispositivo:*</label>
            <input wicket:id="nombre" type="text" name="nombre" />
        </li>
        <li>
            <label>Tipo: </label>
            <select wicket:id="tipo" />
        </li>
    </ol>

    <div wicket:id="contenedor_info">
        <DIV wicket:id="auto_info_panel" />
        <DIV wicket:id="persona_info_panel" />
    </div>
    </fieldset>


    <fieldset class="submit"><span class="required">*Campos
requeridos</span> <br />
        <input type="submit" value="Registrar" />
    </fieldset>
    </form>
    <script language="JavaScript">
        document.dispositivo_form.nombre.focus();
    </script>
</wicket:panel>


The idea is part of form is static and part of it is dynamic, updated by
ajax. It depends on combo selection (this is working) but, when you click
"Registrar" button, data from "auto_info_panel" don't appear in
DispositivoDTO model.

Thanks for answer me!

Norberto


2010/9/30 Per Newgro <pe...@gmx.ch>

>  Can you please share some code. Otherwise there could be tons of problem
> causes.
>
> Cheers
> Per
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: Forms ajax doesn't update components models

Posted by vov <vo...@mail.ru>.
How it currently must work?
Example:
Your open the page -> change your Combo to 'AUTO' -> input data to
AutoInfoPanel and press 'Registrar'
OR
Your open the page -> change your Combo to 'AUTO' -> input data to
AutoInfoPanel -> change your Combo to 'PERSONA' -> input data to
PersonaInfoPanel and press 'Registrar'.


-- 
View this message in context: http://apache-wicket.1842946.n4.nabble.com/Forms-ajax-doesn-t-update-components-models-tp2730857p2854298.html
Sent from the Users forum mailing list archive at Nabble.com.

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