If I trigger an event or redirekt to an eventlink in the page class, the
event handler method is obviously not allowed to return a Block.

The code below doesn't work, though the onUpdateGrid is called.

When I comment the lines from "Link..." to "response..." out and click an
eventlink on the page the same eventhandler gets called and it does update
the grid in the AJAX way without any problem..

Is there any way to trigger an EvenLink or ActionLink programmatcally, so
that the eventhandler method is allowed to return a Block?

The stacktrace yields this as cause:

Caused by: java.lang.RuntimeException: A component event handler method
returned the value Block[filterBlock within products/ProductList, at
classpath:de/kcv/jbookz/pages/products/ProductList.tml, line 67, column 29].
Return type org.apache.tapestry5.internal.structure.BlockImpl can not be
handled.  Configured return types are java.lang.Class, java.lang.String,
java.net.URL, org.apache.tapestry5.Link,
org.apache.tapestry5.StreamResponse, org.apache.tapestry5.runtime.Component.

Code:
    @OnEvent(component = "filterfield", value = "keyup")
    void onKeyUpFromFilterField(String context) throws IOException
    {
        ..... (Here the filtered list is constructed)

        Link c = resources.createEventLink("updateGrid");
        c.addParameter("zone", "filterZone");
        response.sendRedirect(c);
    }

    Object onUpdateGrid()
    {
        log.info("In update Grid Event");
        return filterBlock;
    }

Reply via email to