Hi Matej,

>The idea is always to load one row more than required on page which
>tells the grid if there will be a next page or not.

Great idea. I looked at the code and I think I'll do my own (simplied
version) of your refreashingpage. I believe thats what we really want here,
as we don't care about telling the user the total amount of rows.

Thanks everyone for your comments and help
Wayne

On Wed, Nov 26, 2008 at 5:21 PM, Matej Knopp <[EMAIL PROTECTED]> wrote:

> Hi Wayne,
>
> if you feel brave enough you can take a look at inmethod grid
> components (available in wicket stuff svn -
> http://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff  in trunk
> and 1.3 branch). The grid contains AbstractPageableView that can
> perform paging without having to know the number of rows upfront.
>
> The idea is always to load one row more than required on page which
> tells the grid if there will be a next page or not.
>
> -Matej
>
> On Wed, Nov 26, 2008 at 5:15 PM, Wayne Pope
> <[EMAIL PROTECTED]> wrote:
> > Hi James,
> >
> > its not killing anything at the moment, I just don't like the idea of
> > hitting the database with due cause.
> > However I thinking about this some more I believe perhaps I should not
> use
> > DataViews full stop - but RefreshingView instead?. Essentially I have in
> > several places a large data set. I'm only interested in displaying say
> the
> > first 10 rows. Then the user can click on "load next 10" and thus display
> > the next 'page' of results. They then have a choice of loading the next
> 10
> > or the previous 10, etc. Perhaps DataView is not really suited to this
> type
> > of behaviour? more used where you want to see the number of pages a
> search
> > result finds for example? If we're at the edge condition that there are
> > exactly 20 results, when asking for the next 10, we simply disply the
> > message 'no more results'.
> >
> >
> >>We just issue a count(*) query first to get the count
> > Yes so this will be called every time the page is rendered no unless you
> > cache as you stated, but you run the risk changing dataset?
> >
> > thanks
> > Wayne
> >
> > On Wed, Nov 26, 2008 at 5:05 PM, James Carman <
> [EMAIL PROTECTED]>wrote:
> >
> >> We just issue a count(*) query first to get the count.  Then, we use
> >> individual queries to get each page's data.  If you feel confident
> enough
> >> that the count won't change (or you don't really care if it does), you
> can
> >> cache the value returned from it the count query (I don't know how often
> >> that gets called, really).  If calling the queries to get the individual
> >> page's data is killing your database, then you're doing something wrong,
> >> IMHO.
> >>
> >> On Wed, Nov 26, 2008 at 10:32 AM, Wayne Pope <
> >> [EMAIL PROTECTED]> wrote:
> >>
> >> > Hi,
> >> >
> >> > thanks for the replies.
> >> >
> >> > Micheal O/Hoover - I still don't see how this works as you don't have
> the
> >> > limit and offset (that is used in Iterator). How do you know how many
> >> rows
> >> > to load in your size() method?
> >> >
> >> > Michael S - thanks for the link - it it appears I must completely
> rewrite
> >> > the whole pagable/provider code (not looked at the code) to get this
> to
> >> > work?
> >> >
> >> > I'm sure I must be missing something still, as I can't beleive that we
> >> need
> >> > to either a) load the whole data set b) call count on the Db , then
> load
> >> in
> >> > the iterator mehod. Thats going to kill the database in prod (or
> really
> >> not
> >> > help.)
> >> >
> >> > On Wed, Nov 26, 2008 at 3:58 PM, Michael Sparer <
> [EMAIL PROTECTED]
> >> > >wrote:
> >> >
> >> > >
> >> > > have a look at https://issues.apache.org/jira/browse/WICKET-1784
> >> > >
> >> > >
> >> > > Wayne Pope-2 wrote:
> >> > > >
> >> > > > Ok,
> >> > > >
> >> > > > I was just having a bit of code clean up and I realized that in
> our
> >> > > > IDataProviders we are loading all rows for a given dataset.
> >> > > > So looking at the iterator method I see we can limit the result
> (and
> >> > the
> >> > > > offset). Great I thought - however I see that that the size()
> method
> >> is
> >> > > > called as part of the getViewSize() in the AbstractPageableView.
> Thus
> >> I
> >> > > > need
> >> > > > to call the database here to figure out the size.
> >> > > >
> >> > > > Am I doing sonething wrong or have I got to hit the database twice
> >> for
> >> > > > each
> >> > > > DataProvider render.
> >> > > >
> >> > > > Obvously I don't want to hard code a size. Is there any other way
> ?
> >> > > >
> >> > > > Thanks
> >> > > > Wayne
> >> > > >
> >> > > >
> >> > >
> >> > >
> >> > > -----
> >> > > Michael Sparer
> >> > > http://talk-on-tech.blogspot.com
> >> > > --
> >> > > View this message in context:
> >> > >
> >> >
> >>
> http://www.nabble.com/Is-there-any-other-way--DataProviders-must-hit-the-Db-twice-for-%28possible%29-large-datasets-tp20701684p20702476.html
> >> > > Sent from the Wicket - User mailing list archive at Nabble.com.
> >> > >
> >> > >
> >> > >
> ---------------------------------------------------------------------
> >> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> > > For additional commands, e-mail: [EMAIL PROTECTED]
> >> > >
> >> > >
> >> >
> >>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to