I answer myself:
Yes, the sort model seems to be catched in the grid. I solved the problem
by adding the following line in onSubmit method:

void onSubmitFromFilterTargetsForm() {

> *this.targetsGrid.getSortModel().clear();*

this.ajaxResponseRenderer.addRender("targetsZone", this.targetsZone);
> }



------------------------------------------------------------------
David Germán Canteros


2012/7/10 David Canteros <[email protected]>

> Addition information: the exception occurs only if I submit the form after
> a column sort process was done. Also the stack begins with the following
> lines:
>
> Stack trace
>
>    - 
> org.apache.tapestry5.internal.beaneditor.BeanModelImpl.getById(BeanModelImpl.java:185)
>
>    - 
> org.apache.tapestry5.corelib.components.Grid$DefaultGridSortModel.getSortConstraints(Grid.java:364)
>
>    - 
> org.apache.tapestry5.corelib.components.Grid.setupDataSource(Grid.java:483)
>
>    - org.apache.tapestry5.corelib.components.Grid.setupRender(Grid.java:447)
>
>    - org.apache.tapestry5.corelib.components.Grid.setupRender(Grid.java)
>
> And I found in the grid's documentation, about sort-model:
>
> "*The model used to handle sorting of the Grid. This is generally not
> specified, and the built-in model supports only single column sorting. The
> sort constraints (the column that is sorted, and ascending vs. descending)
> is stored as persistent fields of the Grid component*."
>
> Is the grid catching the old properties in the sort-model???
>
>
>
>
>
>
>
>
> ------------------------------------------------------------------
> David Germán Canteros
>
>
>
> 2012/7/10 David Canteros <[email protected]>
>
>> Hi guys!
>> I'm looking for help with a rare case. I have a zone, a form (with a
>> checkbox) and a grid. The form and the grid are enclosed by the zone.
>>
>> <t:zone t:id="targetsZone" t:update="show">
>>
>> <t:form t:id="filterTargetsForm" t:zone="targetsZone" zone="targetsZone">
>>     <t:checkbox t:id="flag" t:value="flag" />
>>     <t:submit value="Filter" />
>> </t:form>
>>
>> <t:grid source="targets" row="target" model="myModel" inPlace="true" />
>>
>> </t:zone>
>>
>> On the java side: I change the grid model, depending on the checkbox
>> value:
>>
>>    @Component
>>     private Zone targetsZone;
>>
>>     @Property
>>     @Persist
>>     private boolean flag;
>>
>>     public BeanModel<CycleTargets> getMyModel() {
>>
>>     BeanModel<CycleTargets> myModel = beanModelSource.createDisplayModel(
>>                 CycleTargets.class, messages);
>>
>>      if (flag){
>>           myModel.include(.....);
>>           myModel.exclude(.....);
>>           myModel.reorder(.....);
>>       } else {
>>           myModel.include(.....);
>>           myModel.exclude(.....);
>>           myModel.reorder(.....);
>>       }
>>
>>    }
>>
>>
>> void onSubmitFromFilterTargetsForm() {
>>     this.ajaxResponseRenderer.addRender("targetsZone", this.targetsZone);
>> }
>>
>> Note that the method  "onSubmit" only update the zone. So, depending if
>> the checkbox is clicked or not, i want to change the properties displayed
>> by the grid.
>> The problem is that after the form-submit  the model seem not to change
>> and throws an "*Render queue error in
>> SetupRender[cycles/NewEditCyclePage:targetsgrid]: Bean editor model for
>> XXXXXXXX does not contain a property with id 'XXXXXX'*"
>>
>> Do you know if the model of a grid can be changed on this way?
>>
>> Thanks in advance!
>>
>>
>> ------------------------------------------------------------------
>> David Germán Canteros
>>
>
>

Reply via email to