You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Мария Григорьева <ma...@gmail.com> on 2008/08/02 20:59:11 UTC

how to pass params to the repeater's selection list

I have a repeater:

 

<fd:repeater id="test" orderable="false" initial-size="1">

                                               <fd:widgets>

                                                               <fd:field
id="type">

 
<fd:label>Types</fd:label>

 
<fd:datatype base="string"/>

 
<fd:selection-list src="cocoon:/selection-list-molecules"/>

                                                               </fd:field>

                                                              <fd:field
id="amount">

 
<fd:label>Amount</fd:label>

 
<fd:datatype base="decimal"/>

                                                               </fd:field>

 
<fd:booleanfield id="select">

 
<fd:label>Select</fd:label>

 
</fd:booleanfield>

                                               </fd:widgets>

                               </fd:repeater>

 

In the flowscript I transmit params from database to the form's repeater

 

var repeater = form.getChild("test"); 

                for (var i = 0; i < comp_in_composition.size(); i++) {

                               var row = repeater.addRow(i); 

 
row.getChild("type").setValue(comp_in_composition.get(i).get("type"));

 
row.getChild("amount").setValue(comp_in_composition.get(i).get("amount"));

                               row.getChild("select").setValue(false);

                }

 

The selection list is in file: 

 

<?xml version="1.0"?>

 

<fd:selection-list xmlns:fd="http://apache.org/cocoon/forms/1.0#definition"

                   xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">

  <jx:forEach var="item" items="${items}">

    <fd:item value="${item.value}">

      <jx:if test="${item.label}">

        <fd:label>${item.label}</fd:label>

      </jx:if>

    </fd:item>

  </jx:forEach>

</fd:selection-list>

 

So, I need to have the elements "type" (selection-list) of the repeater  to
be selected as in the database.

How can I do it?


Re: how to pass params to the repeater's selection list

Posted by Magsend <ma...@gmail.com>.
Alessandro, thanks a lot for advice, but in cocoon docs I've found a little
information about Binding Framework and how to use it with the database. 
Could you please post me the sample code of database communications with
binding framework ?


Alessandro Vincelli wrote:
> 
> You can use code similar to 
> form.getChild("test").getChild("type").setValue("...") before the 
> form.showForm(), but i think the best solution is the Binding
> Framework[1].
> 
> Bye
> Alessandro
> 
> [1] The best solution is the Binding Framework. You can bind the vale 
> from the
> 
> 
> Magsend wrote:
>> I've found in Cocoon docs:
>>
>> "To set a default selection, just set the value of the widget containing
>> the
>> selection list."
>>
>> How to set this value?
>>
>>
>> Magsend wrote:
>>   
>>> I have a repeater:
>>>
>>>  
>>>
>>> <fd:repeater id="test" orderable="false" initial-size="1">
>>>
>>>                                                <fd:widgets>
>>>
>>>                                                                <fd:field
>>> id="type">
>>>
>>>  
>>> <fd:label>Types</fd:label>
>>>
>>>  
>>> <fd:datatype base="string"/>
>>>
>>>  
>>> <fd:selection-list src="cocoon:/selection-list-molecules"/>
>>>
>>>                                                               
>>> </fd:field>
>>>
>>>                                                               <fd:field
>>> id="amount">
>>>
>>>  
>>> <fd:label>Amount</fd:label>
>>>
>>>  
>>> <fd:datatype base="decimal"/>
>>>
>>>                                                               
>>> </fd:field>
>>>
>>>  
>>> <fd:booleanfield id="select">
>>>
>>>  
>>> <fd:label>Select</fd:label>
>>>
>>>  
>>> </fd:booleanfield>
>>>
>>>                                                </fd:widgets>
>>>
>>>                                </fd:repeater>
>>>
>>>  
>>>
>>> In the flowscript I transmit params from database to the form's repeater
>>>
>>>  
>>>
>>> var repeater = form.getChild("test"); 
>>>
>>>                 for (var i = 0; i < comp_in_composition.size(); i++) {
>>>
>>>                                var row = repeater.addRow(i); 
>>>
>>>  
>>> row.getChild("type").setValue(comp_in_composition.get(i).get("type"));
>>>
>>>  
>>> row.getChild("amount").setValue(comp_in_composition.get(i).get("amount"));
>>>
>>>                                row.getChild("select").setValue(false);
>>>
>>>                 }
>>>
>>>  
>>>
>>> The selection list is in file: 
>>>
>>>  
>>>
>>> <?xml version="1.0"?>
>>>
>>>  
>>>
>>> <fd:selection-list
>>> xmlns:fd="http://apache.org/cocoon/forms/1.0#definition"
>>>
>>>                    xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
>>>
>>>   <jx:forEach var="item" items="${items}">
>>>
>>>     <fd:item value="${item.value}">
>>>
>>>       <jx:if test="${item.label}">
>>>
>>>         <fd:label>${item.label}</fd:label>
>>>
>>>       </jx:if>
>>>
>>>     </fd:item>
>>>
>>>   </jx:forEach>
>>>
>>> </fd:selection-list>
>>>
>>>  
>>>
>>> So, I need to have the elements "type" (selection-list) of the repeater 
>>> to
>>> be selected as in the database.
>>>
>>> How can I do it?
>>>
>>>
>>>
>>>     
>>
>>   
> 
> 
> begin:vcard
> fn:Alessandro Vincelli
> n:;Alessandro Vincelli
> url:http://www.alessandro.vincelli.name
> version:2.1
> end:vcard
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
> 

-- 
View this message in context: http://www.nabble.com/how-to-pass-params-to-the-repeater%27s-selection-list-tp18792206p18800944.html
Sent from the Cocoon - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: how to pass params to the repeater's selection list

Posted by Alessandro Vincelli <av...@alessandro.vincelli.name>.
You can use code similar to 
form.getChild("test").getChild("type").setValue("...") before the 
form.showForm(), but i think the best solution is the Binding Framework[1].

Bye
Alessandro

[1] The best solution is the Binding Framework. You can bind the vale 
from the


Magsend wrote:
> I've found in Cocoon docs:
>
> "To set a default selection, just set the value of the widget containing the
> selection list."
>
> How to set this value?
>
>
> Magsend wrote:
>   
>> I have a repeater:
>>
>>  
>>
>> <fd:repeater id="test" orderable="false" initial-size="1">
>>
>>                                                <fd:widgets>
>>
>>                                                                <fd:field
>> id="type">
>>
>>  
>> <fd:label>Types</fd:label>
>>
>>  
>> <fd:datatype base="string"/>
>>
>>  
>> <fd:selection-list src="cocoon:/selection-list-molecules"/>
>>
>>                                                                </fd:field>
>>
>>                                                               <fd:field
>> id="amount">
>>
>>  
>> <fd:label>Amount</fd:label>
>>
>>  
>> <fd:datatype base="decimal"/>
>>
>>                                                                </fd:field>
>>
>>  
>> <fd:booleanfield id="select">
>>
>>  
>> <fd:label>Select</fd:label>
>>
>>  
>> </fd:booleanfield>
>>
>>                                                </fd:widgets>
>>
>>                                </fd:repeater>
>>
>>  
>>
>> In the flowscript I transmit params from database to the form's repeater
>>
>>  
>>
>> var repeater = form.getChild("test"); 
>>
>>                 for (var i = 0; i < comp_in_composition.size(); i++) {
>>
>>                                var row = repeater.addRow(i); 
>>
>>  
>> row.getChild("type").setValue(comp_in_composition.get(i).get("type"));
>>
>>  
>> row.getChild("amount").setValue(comp_in_composition.get(i).get("amount"));
>>
>>                                row.getChild("select").setValue(false);
>>
>>                 }
>>
>>  
>>
>> The selection list is in file: 
>>
>>  
>>
>> <?xml version="1.0"?>
>>
>>  
>>
>> <fd:selection-list
>> xmlns:fd="http://apache.org/cocoon/forms/1.0#definition"
>>
>>                    xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
>>
>>   <jx:forEach var="item" items="${items}">
>>
>>     <fd:item value="${item.value}">
>>
>>       <jx:if test="${item.label}">
>>
>>         <fd:label>${item.label}</fd:label>
>>
>>       </jx:if>
>>
>>     </fd:item>
>>
>>   </jx:forEach>
>>
>> </fd:selection-list>
>>
>>  
>>
>> So, I need to have the elements "type" (selection-list) of the repeater 
>> to
>> be selected as in the database.
>>
>> How can I do it?
>>
>>
>>
>>     
>
>   


Re: how to pass params to the repeater's selection list

Posted by Magsend <ma...@gmail.com>.
I've found in Cocoon docs:

"To set a default selection, just set the value of the widget containing the
selection list."

How to set this value?


Magsend wrote:
> 
> I have a repeater:
> 
>  
> 
> <fd:repeater id="test" orderable="false" initial-size="1">
> 
>                                                <fd:widgets>
> 
>                                                                <fd:field
> id="type">
> 
>  
> <fd:label>Types</fd:label>
> 
>  
> <fd:datatype base="string"/>
> 
>  
> <fd:selection-list src="cocoon:/selection-list-molecules"/>
> 
>                                                                </fd:field>
> 
>                                                               <fd:field
> id="amount">
> 
>  
> <fd:label>Amount</fd:label>
> 
>  
> <fd:datatype base="decimal"/>
> 
>                                                                </fd:field>
> 
>  
> <fd:booleanfield id="select">
> 
>  
> <fd:label>Select</fd:label>
> 
>  
> </fd:booleanfield>
> 
>                                                </fd:widgets>
> 
>                                </fd:repeater>
> 
>  
> 
> In the flowscript I transmit params from database to the form's repeater
> 
>  
> 
> var repeater = form.getChild("test"); 
> 
>                 for (var i = 0; i < comp_in_composition.size(); i++) {
> 
>                                var row = repeater.addRow(i); 
> 
>  
> row.getChild("type").setValue(comp_in_composition.get(i).get("type"));
> 
>  
> row.getChild("amount").setValue(comp_in_composition.get(i).get("amount"));
> 
>                                row.getChild("select").setValue(false);
> 
>                 }
> 
>  
> 
> The selection list is in file: 
> 
>  
> 
> <?xml version="1.0"?>
> 
>  
> 
> <fd:selection-list
> xmlns:fd="http://apache.org/cocoon/forms/1.0#definition"
> 
>                    xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
> 
>   <jx:forEach var="item" items="${items}">
> 
>     <fd:item value="${item.value}">
> 
>       <jx:if test="${item.label}">
> 
>         <fd:label>${item.label}</fd:label>
> 
>       </jx:if>
> 
>     </fd:item>
> 
>   </jx:forEach>
> 
> </fd:selection-list>
> 
>  
> 
> So, I need to have the elements "type" (selection-list) of the repeater 
> to
> be selected as in the database.
> 
> How can I do it?
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/how-to-pass-params-to-the-repeater%27s-selection-list-tp18792206p18793953.html
Sent from the Cocoon - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org