FormSubmit and table source are 2 different things. Form Submit is necessary when you click the paging links, to save data on the web session while the page is refreshed. If you don't want Tapestry to hit your database on a page link click, you should actually move the DB hit *out* of the form submit.

Consider using IBasicTableModel to fetch the data from the page, instead of a session-scoped list. Loading a 5000+ rows table in memory is slow *and* a memory hog. And it doesn't scale at all.

But in any case, you should move the DB fetch out of the formSubmit. You could use the actual @Submit component "action" parameter to bind the DB check to the button click only, and not on any form submission.

--
Ing. Leonardo Quijano Vincenzi
DTQ Software


John Menke wrote:
I recently posted another question but i fear that i was not specific
enough.  Forgive the apparent repost.

I am using Tapestry 4 with the TableView component to implement paging in my
application

 I have it configured like this:

<component id="table" type="Contrib:TableView">
        <binding name="source" value="entries"/>
        <binding name="pageSize" value="10"/>
        <binding name="columns"
            value="literal: primaryTeamName, subTeamName,
primaryTeamEventLocation, primaryTeamCaptainName, !join"/>
   </component>
    <component id="tableColumns" type="Contrib:TableColumns"/>
    <component id="tableRows" type="Contrib:TableRows"/>
    <component id="tableValues" type="Contrib:TableValues"/>
    <component id="tablePages" type="Contrib:TablePages"/>

<property name="entries" persist="session"/>

I was expecting the paging to be done through the session but this is not
working.  It goes back to the database every time.

I have found some posts describing a TableModel but even when i add the
binding below  to my TableView configuration i cannot get client side
caching working.  When i hit the pager i see
the database being hit in my code

 <binding name="tableSessionStateManager"
value="new
org.apache.tapestry.contrib.table.model.common.FullTableSessionStateManager
()"/>

pseudo code for my page is something like this

formSubmit(

request data from DB
set entries variable with data returned

)

i was hoping that the hitting the paging controls in the TableView component
would not execute the formSubmit in my page.  Is this my problem?

-jm





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to