Hi,
I would like to call a new component from a table row as in the following <tr onclick=« callmycomponent…> I have tried html tableRow onClick: (html jQuery callback: [self callMyComponent]) but the callback is called and I stay on the same page Best regards Annick _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Hi Annick,
performing a #call: from within a Ajax callback typically doesn’t work in Seaside.
Kind Regards
Karsten
—
Georg Heeg eK Wallstraße 22 06366 Köthen Tel.: 03496/214328 FAX: 03496/214712 Amtsgericht Dortmund HRA 12812 Am 4. Februar 2021 um 10:42:44, List ([hidden email]) schrieb:
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Thank you Karsten,
Do you have any suggestion then outside putting an anchor in each cell ? Kind regards Annick
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Typically you use #call: to have the original component replace itself with another component and then this other component decides when to return by calling #answer:.
If you move this task to the surrounding component, it can replace the sub-component any time, without the need for a #call:. This approach should be possible from Ajax, too: you basically replace the
component and redraw the cell.
Karsten
—
Georg Heeg eK Wallstraße 22 06366 Köthen Tel.: 03496/214328 FAX: 03496/214712 Amtsgericht Dortmund HRA 12812 Am 4. Februar 2021 um 10:46:41, List ([hidden email]) schrieb:
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Hi Annick, It is exactly as Karsten suggests, you usually replace a component by another one, depending on your needs you might use the call/answer, show or simply replace the component (the most common use). html tableRow onClick: ((html jQuery id: 'containerId') ajax html: [:h | h render: YourComponent new]); this will render YourComponent within a <div> with id 'containerId', that must exist in the DOM before making the call. regards Esteban A. Maringolo On Thu, Feb 4, 2021 at 8:51 AM Karsten Kusche <[hidden email]> wrote:
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Hi Esteban,
Thank you for the update, but my web pages are big, and having all of them in one single DOM will be huge. Otherwise, this was helpful. Kind regards Annick
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Hi Annick,
Esteban said the „container-id“ has to be in the DOM. The new components will only be rendered when requested via Ajax.
Kind regards
Karsten
—
Georg Heeg eK Wallstraße 22 06366 Köthen Tel.: 03496/214328 FAX: 03496/214712 Amtsgericht Dortmund HRA 12812 Am 4. Februar 2021 um 15:44:45, List ([hidden email]) schrieb:
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Free forum by Nabble | Edit this page |