cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Johnston <>
Subject Re: CForms: Updating all instances of a widget in a repeater
Date Thu, 06 Apr 2006 12:59:42 GMT
Stewart, Gary wrote:
> Hi there,
> I've got a repeater with two selection lists in; staffmemeber and
> staffrole. Upon a value being changed on the staffrole or another
> selection list outside of the repeater (department) the list of staff
> members change. I'm using an on-changed-value on the staffrole
> repeater and that works fine but I'd also like to change the list if
> the department is updated for all the rows in the repeater using
> javascript on the department's on-changed-value event.
> I tried something like:
> var staff_list = event.source.parent.lookupWidget("stafflist").getChildren();
> var staff_item = null;
> var staff_member = null;
> var staff_role = null;
> while(staff_list.hasNext())
> {
> 	staff_item =;
>       staff_member = staff_item.lookupWidget("staffmember");
>       staff_role = staff_item.lookupWidget("staffrole");
> 	//set a new staff member event
> }
> but I got stuck at the first hurdle. That is that it looks like
> stafflist doesn't actually have any children (hasNext() returns
> false). It certainly should have. If it does have children is it then
> possible to do the latter logic of getting each child and looking up
> the components I want to get the value of and change the values of?
> Is there a different or better way that I should do this?

I think to get the rows from a Repeater you have to use getRow() rather
than getChildren(). I think I've used something like this in the past:

var repeater = ...
for(var i=0; i<repeater.getSize(); i++) {
  var row = repeater.getRow(i);

Hope that works

Actually the Javadoc for Repeater doesn't even look like it has a
getChildren() method, so I'm not sure why you weren't getting an error.
It seems odd that Repeater doesn't implement ContainerWidget; even its
Javadoc says it should.  Interesting.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message