[fpc-devel] fcl-web webdata ExtJS "total" field question
Michael Van Canneyt
michael at freepascal.org
Thu Aug 19 23:59:19 CEST 2010
On Thu, 19 Aug 2010, ABorka wrote:
> ...snip...
>>> 2. How can I provide the correct "total" for the response if I only
>>> loaded exactly the records requested by ExtJS into the dataset but not
>>> the whole table?
>>> Ex: Have a table with 1000 records, I'm on page 2 of the grid that has
>>> a page limit of 50 records.
>>> Of the total 1000 records, only about one third should be visible for
>>> the person currently requesting data.
>>> Therefore, I run a SQL statement to get those next 50 records from the
>>> 333 potential ones for this person, and that will be displayed in the
>>> grid, and only those 50.
>>> This way, only I can tell in the response the correct "total", which
>>> is 333 in this case. 50 was passed to the formatter/adapter.
>>
>> Well, I have no idea. As far as I know, the 'total' is only needed for
>> display purposes in a paging grid. You'd need to run a second query which
>> counts the number of records that would be returned if no paging was
>> requested.
>>
>> Michael.
>
> Hi Michael,
>
> I understand.
> However, how do we send back our own "total" we got from our second query?
> How do we append/update it into the response?
Good point.
>
> With XML, FCL-web always appends a "total" so that should be overwritten
> somehow.
>
> I guess we can trick FCL-web to not append its own "total" with JSON by
> sending only the 50 records needed and saying to it that the "start" is the
> 1st one and "limit" per page is 51 even if those 50 come from a table of 1
> million records.
>
> It seems we need to manipulate the tmemorystream that is generated by the
> formatter? Maybe we should make this a little bit easier for developers
> somehow.
Yes. I don't think you should manipulate the stream; it is too slow.
I will add an 'AfterFormatResult' or so event;
Likewise I will add a AfterRow event, so it is possible to append extra data to a row.
I think we should do this for both XML and JSON, so the row/response elements can easily
be accessed. The question is now,
a) do I make this a TNotifyEvent, and make a Property Response/CurrentRow which can be used
or
b) do I pass Response/CurrentRow to a new event handler type for these events ?
Doing a) means I can introduce it at a higher level, but b) seems more clean.
Michael.
More information about the fpc-devel
mailing list