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]

Reply via email to