AjaxFormLoop niet invullen waarden voor de nieuw gemaakte formulierelementen na indiening

Can someone please point out when/where in the code during the form submission, ajaxformloop copies the newly added row results I'm referring to the following example code - http://jumpstart.doublenegative.com.au/jumpstart/examples/ajax/formloop1

Ik heb een soortgelijke code, gevolgd door mijn ValueEncoder

@Log
public ValueEncoder getPromotionEncoder() {

    return new ValueEncoder() {

        @Log
        public String toClient(Promotion promo) {
            log.debug("toClient id="+promo.getId());
            if (promo.getId() == 0)
            {
                return NEW_PROMOTION;
            }
            return new Long(promo.getId()).toString();
        }
        @Log
        public Promotion toValue(String id) {

            log.debug("toValue id="+id);
            Promotion promotion = null;

            if (id.equals(NEW_PROMOTION))
            {
                promotion = new Promotion();
                newPromotions.add(promotion);
            }
            else 
            {
                promotion = crudService.findUniqueWithNamedQuery(Promotion.BY_ID,
                                    QueryParameters.with("id", new Long(id).longValue()).parameters());
            }
            return promotion == null? new Promotion(): promotion;
        }
    };
}

Wanneer de onSuccess() -methode wordt aangeroepen na het verzenden van het formulier, heb ik geen toegang tot de waarden van de nieuw gemaakte rijen die ik opslaat in newPromotions in de toValue ( ) methode hierboven.

Ik waardeer alle hulp hierover.

0

1 antwoord

Uw vergelijking in toClient klopt niet:

if (promo.getId() == 0){ return NEW_PROMOTION; }

wanneer u een nieuwe promotie plaatst, is de ID waarschijnlijk niet nul maar NULL. De Jumpstart ValueEncoder doet het als volgt:

return id == null ? NEW_PERSON : id.toString();

Daarom faalt ook je toValue-methode :)

0
toegevoegd