Sorry it's t:formstate="ITERATION"

On Fri, Jan 16, 2015 at 12:16 PM, George Christman
<[email protected]> wrote:
> I'm not entirely sure this will resolve your issue, but have you tried
> setting the formstate? Perhaps formsate="iterator" on the loop. Like I
> said, I'm not entirely sure this will resolve your issue.
>
> On Thu, Jan 15, 2015 at 11:40 AM, Robson Pires <[email protected]> wrote:
>> Hi,
>>
>> I'm currently working on a component which use a loop to render a list of
>> fields dynamically. Following this is the structure of the component:
>>
>> componentA.tml
>>
>> <t:container
>>   xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd";
>>   xmlns:p="tapestry:parameter">
>>   <div style="height: 500px; overflow: scroll; overflow-x: hidden">
>>
>>     <t:loop t:source="properties" value="property" encoder="encoder" >
>>       <t:if test="case">
>>
>>         <t:delegate to="case" />
>>
>>         <!-- TEXT -->
>>         <t:block t:id="text">
>>           <t:formfragment visible="printable">
>>             <div class="form-group">
>>               <t:label for="textField" class="col-sm-4 control-label" />
>>               <div class="col-sm-8">
>>                 <input t:type="TextField" t:id="textField"
>>                   value="property.second.defaultValue.rawValue"
>>                   label="${label}" />
>>               </div>
>>             </div>
>>           </t:formfragment>
>>         </t:block>
>>     </t:loop>
>>
>>   </div>
>> </t:container>
>>
>> ComponentA.java
>>
>> public class ComponentAextends  {
>>
>>
>>   @Parameter(name = "properties", required = true)
>>   @Property
>>   protected List<ObjectPair<ObjectA, ObjectB>>> properties;
>>
>>   @Property
>>   private ObjectPair<ObjectA, ObjectB> property;
>>
>> @Property
>>   private final ValueEncoder<ObjectPair<ObjectA, ObjectB>> encoder =
>>  new ValueEncoder<ObjectPair<ObjectA, ObjectB>>() {
>>     public String toClient(
>>         ObjectPair<ObjectA, ObjectB> namedKeyObject) {
>>
>>       String clientValue = "-1";
>>
>>       if (namedKeyObject != null) {
>>         clientValue = String.valueOf(namedKeyObject.getFirst().getKey());
>>       }
>>       return clientValue;
>>
>>     }
>>
>>     public ObjectPair<ObjectA,ObjectB> toValue(
>>         String key) {
>>
>>       if (!Misc.isEmptyString(key) && !"-1".equals(key)) {
>>         long filterKey = Long.valueOf(key).longValue();
>>
>>         for (int i = 0; i < properties.size(); i++) {
>>
>>           if (properties.get(i).getFirst().getKey() == filterKey) {
>>             return properties.get(i);
>>           }
>>         }
>>       }
>>
>>       return null;
>>     }
>>   };
>>
>> ...
>>
>> My problem is when I click in the button to send the values only the last
>> field is coming filled, the other fields are coming null. I thought could
>> be a problem with my encoder but I have seen that the encoder is working
>> fine. Someone has any idea about this?
>>
>>
>> Thank you,
>>
>> Robson Pires
>
>
>
> --
> George Christman
> CEO
> www.CarDaddy.com
> P.O. Box 735
> Johnstown, New York



-- 
George Christman
CEO
www.CarDaddy.com
P.O. Box 735
Johnstown, New York

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to