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
>>
>
>