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]

Reply via email to