--
You received this message because you are subscribed to the Google Groups "TurboGears" group.
To post to this group, send email to turbo...@googlegroups.com.
To unsubscribe from this group, send email to turbogears+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/turbogears?hl=en.
As you say, they all work but they (perhaps) serve different purposes. As to flexigrid/jqgrid, your choice... but the latter is unquestionably more advanced and I find it aesthetically more pleasing (as far as I'm aware there's no TW2 widget/wrapper for flexigrid).
As to TW / TW2 (and in fact as per the tutorial you linked to by Ralph Bean), in a new project I simply switch TW off and use only the latter. As per the docs etc. TW and TW2 can be used in the same project (ie they can both be 'switched on' at the same time) but I prefer the syntax of the latter and -- here I really hope that I'm not speaking out of line(!) -- consensus appears to be in favour of TW2, that's certainly where the development is most active.
Just very quickly, I'll address the question you asked about having to query and "then throw away all but 25 of them". If you look at the resulting jqgrid you'll see in the pager/navgrid "page 1 of P" and on the right hand side, "records 1 to n of Z", where Z is the total number of rows in the recordset. So, very simply let's say there are 10,000 records in your table, you've now filtered the recordset to show only those whose first name is "Mary", and you're left with 300 records. If you look carefully at the code I sent, this will now become immediately apparent You query/filter --- and then count the total number records (the Z has to come from somewhere, right? :) ) and then limit/offset depending on the number of records to display per page (let's say 25) and the page number you're on. (that make sense?!)
So, time to close some doors! We're now talking about using jqgrid with TW2: your choice of jqGridWidget vs SQLAjqGridWidget... And now it very much depends on what it is that you're trying to accomplish and the 'object model' you're using. Fundamentally, it's a question about 'layers of abstraction':
Very broadly speaking, if you have a simple object model and, all things being equal, in order to query it you'd use the object model/ORM then the SQLAjqGridWidget will almost certainly get you there... Essentially, the SQLAjqGridWidget takes the job away from you and constructs the [@expose('json')] controller method/query for you -- granted, you lose visibility of what exactly is being queried but in a great many cases this may well be exactly what you're looking for.
If on the other hand the object model is more complex or you find yourself needing (or wanting) to use the expression language directly (don't forget that the ORM is an abstraction of the expression language, it's slower and provides less fine-grained control) then you will almost certainly have to provide the controller method (ie the code snippet that I provided earlier) yourself. In a nutshell, if you want full control of the query you'll be using jqGridWidget.
I really hope that this explanation has revealed more than it's obscured, but if you still have questions I'd be happy to try and help.
Regards,
Rob