[Seaside] changing components without a complete redraw
Cédrick Béler
cbeler at enit.fr
Thu Sep 21 09:20:23 UTC 2006
> I'm trying to figure out how to use Seaside and Scriptaculous to cause
> components on a page to be redrawn if they have changed from the last
> HTTP request. The scenario looks something like:
>
> html anchor
> onClick: (html updater
> callback: [ :render | self changeMe. self otherComponent
> changeYou. render /renderAllChangedElements/ ]);
> with: 'Do Change'.
>
> The existing implementation of SUUpdater does not collect the changed
> components and push all the changes back to the client at once. Has
> anyone done any work to collect all the changes and push them back to
> the browser (the /renderAllChangedElements/ call)? If not, I'll be
> happy to knock something together.
>
>
As far as I understand it, SUUpdater only allows to update a tag in the
page by redrawing it (and eventually it allows to trigger a form
element). It should be something like below. You need to know the id
that contain the part you want to update. If several components change,
you can have several updater with several onClick:.
html updater
id: 'yourFirstChangedComponentId';
callback: [:render |
self changeMe. your/ChangedComponent renderContentOn:
render/ ]);
...
But maybe what you'd like to do is implementing a method
renderAllChangedElement in WACanvas ?
That seems complicated to me... you need to collect what are the
components that have their state changed and then redisplay them by
using updaters ?? Is it what you want ?
Cédrick
More information about the Seaside
mailing list