Thanks Matej, I just noticed org.apache.wicket.markup.repeater.AbstractPageableView<T> which seems what I'm ofter - I'll have a look and both and get something working.
On Wed, Nov 26, 2008 at 5:57 PM, Matej Knopp <[EMAIL PROTECTED]> wrote: > You can just take AbstractPageableView, IDataSource and IGridSortState > from the code. It should do exactly what you want and It shouldn't > have any dependencies on the rest of grids. > > -Matej > > On Wed, Nov 26, 2008 at 5:39 PM, Wayne Pope > <[EMAIL PROTECTED]> wrote: > > 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] > >> > >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >