I had similar problem. I solved it by sorting the id used by
repeater. I use Hibernate, so I added order-by in my hbm file:
<set name="reservations" inverse="true" cascade="all,delete-orphan"
order-by="reservationID">
....
</set>
I had to do this although reservationID is the primary key on my
database table. My binding looks like this:
<fb:repeater id="reservations" parent-path="." row-path="reservations">
<fb:identity>
<fb:value id="reservationID" path="reservationID"/>
</fb:identity>
...
</fb:repeater>
Barbara
On 26 Jun, 2008, at 5:27 pm, [EMAIL PROTECTED] wrote:
Dear Mailing List,
I'm faced with a repeater binding issue and after many hours of
googling and testing I don't really know how to go on...
I'm using CForms with the binding framework and JavaScript for flow
and objects (representing the records) to edit my DB-records. After
some experimenting this works very well.
Now I'm trying to use a repeater to directly edit child-recs of a
record. In the respective Javascript-Object (representing the
parent-rec) I use a property "this.attribute = new java.util.Vector
();" which holds the child-record-objects.
The children are shown correctly in the repeating widgets and the
(changed) values are saved back to the JS-objects as expected.
the binding config:
<fb:context xmlns:fb="http://apache.org/cocoon/forms/1.0#binding"
xmlns:fd="http://apache.org/cocoon/forms/1.0#definition"
path="/">
<fb:value id="probenteil_id" path="probenteil_id"/>
<fb:value id="datum" path="datum"/>
<fb:value id="bemerkung" path="bemerkung"/>
<!-- attribute repeater -->
<fb:repeater id="attribute" parent-path="." row-path="attribute">
<fb:identity>
<fb:value id="row_id" path="id">
<fd:convertor datatype="integer"/>
</fb:value>
</fb:identity>
<fb:on-bind>
<fb:value id="attribut_id" path="attribut_id"/>
<fb:value id="wert_dec" path="@wert_dec"/>
</fb:on-bind>
<!--
<fb:on-insert-row>
<fb:insert-bean addmethod="add"/>
</fb:on-insert-row>
-->
</fb:repeater>
</fb:context>
The Problem:
when I add a row in the repeater (in this case the 4th), fill in
the required values and submit the form I get
"Cannot create a relative context for a non-existent node: /.
[EMAIL PROTECTED]'attribute'][4]"
... OK, as the action for on-insert-row is commented out, but when
I use it (remove the comment) I get
"java.lang.NoSuchMethodException:
org.mozilla.javascript.NativeObject.add()".
My thought was, that the insert-bean in on-insert-row will call the
method {addmethod} of the object what is bound to the repeater
widget (in my case the property 'attribute' what holds an instance
of java.util.Vector)
I would be very grateful if you can help me to solve (and/or
understand) what's wrong here!
Many thanks!
Gerd
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]