The following code illustrates what I am doing: <t:form t:id="form" ...> <t:loop source="items" value="item" ...> <t:textfield t:id="quantity" value="item.quantity" .../> </t:loop> </t:form>
@InjectComponent private Form form; @InjectComponent private TextField quantity; @Property private Item item; void onValidateForm() { for (Item i: getItems()) { if (...cross-field check...) { form.recordError( quantity, "Error message"); } } } What I find is that when I get to onValidateForm(), the injected quantity field is always the last instance (the one bound to the last item). I need a way to get the instance that matches the current item in the for loop. Hope that clarifies my question. Thanks. Benny On Wed, Feb 2, 2011 at 6:21 AM, Thiago H. de Paula Figueiredo < thiag...@gmail.com> wrote: > On Wed, 02 Feb 2011 02:26:45 -0200, Benny Law <benny.mk....@gmail.com> > wrote: > > Hi, >> > > Hi! > > I have a loop inside a form that renders a textfield and some other >> controls. When I am doing cross field validations in the ValidateForm >> event while iterating over a collection (the source of the loop), I would >> like to record error messages against the form with the field in error to >> get the >> normal error highlighting. How can I get to the field in this case since I >> can't use normal injection? >> > > Why not? Even when inside a loop, you don't have more than one instance of > a given component. Example: > > <t:loop ...> > <t:textfield t:id="title".../> > </t:loop> > > You have only one instance of the TextField with t:id "title", regardless > of the number of iterations. > > I don't know if this solves your problem, but at least I'm trying to help > you figure it out. ;) > > -- > Thiago H. de Paula Figueiredo > Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, > and instructor > Owner, Ars Machina Tecnologia da Informação Ltda. > http://www.arsmachina.com.br > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >