When I click the default add button in the upper left corner of the repeated grid it does not add a new row. My model is the following:
<form><myproject>
<CalcAdditionalServices>
<CalcAdditionalService>
<AdditionalServicesCode>d</AdditionalServicesCode>
<AdditionalServicesSurcharge>1</AdditionalServicesSurcharge>
<AdditionalServicesReason>Reason</AdditionalServicesReason>
</CalcAdditionalService>
<CalcAdditionalService>
<AdditionalServicesCode>e</AdditionalServicesCode>
<AdditionalServicesSurcharge>2</AdditionalServicesSurcharge>
<AdditionalServicesReason>Reason</AdditionalServicesReason>
</CalcAdditionalService>
</CalcAdditionalServices>
</myproject></form>
I have the following binds
<xf:bind id="CalcAdditionalServices-bind" ref="CalcAdditionalServices" name="CalcAdditionalServices">
<xf:bind id="CalcAdditionalService-bind" ref="CalcAdditionalService">
<xf:bind id="AdditionalServicesCode-bind" ref="AdditionalServicesCode"/>
<xf:bind id="AdditionalServicesReason-bind" ref="AdditionalServicesReason"/>
<xf:bind id="AdditionalServicesSurcharge-bind" ref="AdditionalServicesSurcharge" name="AdditionalServicesSurcharge" type="xf:decimal"/>
</xf:bind>
</xf:bind>
and the following repeated grid:
<fr:section id="CalcAdditionalServices-control" bind="CalcAdditionalServices-bind">
<fr:grid id="CalcAdditionalService-grid"
repeat="true"
bind="CalcAdditionalService-bind"
template="instance('fr-form-instance')"
min="0" >
<xh:tr>
<xh:td>
<xf:select1 xmlns:xxbl="http://orbeon.org/oxf/xml/xbl"
id="AdditionalServicesCode-control"
bind="AdditionalServicesCode-bind"
class="">
<xf:itemset nodeset="instance('fr-form-instance')//Entity[@type='AdditionalServices']">
<xf:label ref="Description[@language='de']/text()"/>
<xf:value ref="@code"/>
</xf:itemset>
</xf:select1>
</xh:td>
</xh:tr>
</fr:grid>
</fr:section>
First, I would like to populate the repeated grid(is working) and then the user is allowed to add a new row (which is not working)
I see that you use template="instance('fr-form-instance')"
. This is probably not the template you are looking for.
The template must only contain the bit that will be inserted to create a new repeat iteration. So:
<xf:instance id="CalcAdditionalServices-template">
<CalcAdditionalService>
<AdditionalServicesCode/>
<AdditionalServicesReason/>
<AdditionalServicesSurcharge/>
</CalcAdditionalService>
</xf:instance>
And the you would refer to it with:
template="instance('CalcAdditionalServices-template')"
This said, I think you are looking for trouble doing this by hand. This is really designed to be produced by Form Builder.
But if you still want to do it by hand, your best bet is to use Form Builder first, look at the code it generates, and then follow that very closely.