Here's a demonstration of a heavily customised and optimised filtering table running off a RemoteDataStore connecting to an Oracle database via a java servlet.
http://weblogic.cyberavenue.com.au/SuperGridWebApp/msss_master_rules.htm...
To sort, click a column header. To filter, click the triangle icon in each column header. This table demonstrates paging through a database table, filtering on columns, sorting with a big emphasis on high performance. This is running against a real oracle database with ~47000 rows.
The page is still a work in progress so clicking rows and editing values doesn't do anything yet.

great sample how can I get the source code !
Hi,
I have a use case which almost perfectly fits this. Actually its exposing BEA ALBPM process data using BEA Weblogic portal. I have a pageflow portlet currently which I want to talk to an Async servlet and populate a table as in this example. BEA are pushing Dojo as the AJAX toolkit to use but there is very little experience out there for samples/examples. For example most of the Dojo samples dont even compile under Weblogic portal 10.0 as the HTML is validated andmost of the samples have invalid HTML. Where can i get the sample code for this app so I can get it up and running to promote Dojo on WLP platform !.
Source Code
Thanks for your comments. I can see the value in the presentation of Aqua Logic Business Process Management (ALBPM) process data from a web page with a dynamic grid that supports paging, sorting and filtering. No doubt you've already encountered the limitations of the BEA jsp tag library netui:grid implementation for presentation of database tables over the web which was the driving force behind the development of the dojo based 'SuperGrid' database widgets. The main limitation being the pre-caching of the entire result set in the web server incurring a huge memory cost on the server and massive 1st load time performance cost, both of which the SuperGrid server side and widget components avoid.
I'm interested to hear that you say BEA are pushing DOJO. Is this an official BEA position?
Regarding access to the source, since this has alot of server-side code I haven't yet worked out how to release this to the general public given dojo is primarily browser/client-side specific. Perhaps we could talk privately about this. Feel free to contact me at anthony dot fryer at gmail dot com.
BEA Position
Well I wouldnt say its the 'BEA position' but certainly on all the newsgroup threads regading portal its seems Dojo is the most used and the 'recommended' way to go. Of course there are varying viewpoints and all AJAX toolkits are supported. There are lots of people asking what is the 'offical' viewpoint. It seems the offical viewpoint is that BEA support all but the most common one is Dojo :-)
Demo Updated
Following features have been added...
* supports 2 selection modes, 'html checkbox' and 'windows row click'. The demo shows the 'html checkbox' selection mode.
* selection now has xpage memory, so selecting a row or a page and paging back and forward, the selections will be maintained.
* A new "timer refresh" button has been added to the navigator to refresh the current page every 10 seconds.
* A batchsize parameter has been introduced that specifies the number of rows to retrieve from the database as opposed to minrows which specifies the number of rows to display including empty rows. If only batchsize is specified, then empty rows will not be displayed.
* Visited rows now have a css style applied to them. The demo doesn't 'visit' any rows so this won't be visible.
Demo Link does not work for me
I get this weird error when I click on the above link.
Bad Gateway
The proxy server received an invalid
response from an upstream server.
Apache/2.0.59 (Win32) SVN/1.4.3 mod_python/3.3.1 Python/2.4.4 DAV/2 Server at weblogic.cyberavenue.com.au Port 80
Demo Availability
This demo is not available 24x7, only when my computer is switched on. When it has progressed enough I'll host it in a high availability environment.
The demo now uses gzip compression for browsers that support it so load and performance times for most browsers is significantly improved. Firefox in particular has great execution speed for this demo if the network speed is good. Each database page is now around 4. Seems like IE6 takes slightly longer to perform decompression but still should have good performance gains.
which dojo version are u
which dojo version are u using?
u use templateCssPath like in 0.4 and datastores like in 0.9 ....hmm.....
0.4.3
I used the 0.4.3 experimental branch. It was before 0.9 had been released and had the first cut of the datastore concept which i used as a base for this implementation.
ah okay.. are u about to
ah okay.. are u about to transfer that to 0.9? your example is so good! i think this would help rly a lot ppl to understand the datastore concept
i would offer my help to transform it to 0.9.. if u want to contact me... norman dot wenk at gmx dot de
Mass Update
Hi,
Very impresinve demonstration.
Do you plan to inject some mass update / or multiedition functionnality ?
Regards.
planned features for next release
Thanks for the feedback. There's been a bit of interest in this widget so the following actions are now underway to provide another release.
- A trac project and subversion repository has been setup to manage the project and source.
- Work is underway to port this from the 0.4.3 version of dojo to 0.9.
- Major work is also underway on the server side. The next version will work with any database supported by hibernate. Current server side work can be viewed at http://weblogic.cyberavenue.com.au/Majalin/Admin.
- The server side will support CRUD, including bulk versions of all these operations.
- Not yet decided about inline editing. That might be put on the backburner until a later version.
- There's already the ability to select multiple rows and perform a bulk update. For example I have a table that has a status column. At work my application lets the user select multiple rows and update all the rows to a status that they choose.
Is the trac project open to the public?
Could you supply a link if so, please?
trac project
I need to make some adjustments to the svn repository before I make svn and trac available to everyone. In the meantime, the trac tickets can be viewed from majalin at the following url...
http://weblogic.cyberavenue.com.au/Majalin/Admin/postgres@postgresql.cyb...
Licence
Hi,
What kind of licence are you intend to use for the project ?
Regards.
license
The client side is going to be open source and have an LGPL license. I think the server side will be GPL or free for non commercial use.
Client side code
Would it be possible to the get code for the client side part. Really would love to get a DataSource that filters on the server instead of in the client.
client code download
I've put the client code up on the demo for download from http://weblogic.cyberavenue.com.au/SuperGridWebApp/msss_master_rules.htm.... You can save it to disk and run the demo from your file system if you are using FireFox. I'm not putting any effort into getting the offline demo to work with other browsers since this is all going to be replaced by the 0.9 version soon.
Could you post your code here on the Toolkit?
Could you post both the client side and server side code here in the toolkit?
I'd like to look at your example, but the link fails. I'm from Australia so I'm guessing your asleep (with your computer off) while I'm awake :)
Thanks,
Peter
new dojo 1.0 database browser demo now online
I have finally got the dojo 1.0 version of the database grid widget up and running. The new demo is here...
http://www.cyberavenue.com.au/resources/majalin/tests/test_Navigator.htm...
Some of the new features include...
* custom dojo data store implementation fully implements the read, write, identity and notification apis. You can not only browse table data but create, update and delete as well. Hooks seemlessly into the dojo combo box and filtering selects. Provides additional functionality in addition to the api functions like
table.store.fetch( { query: "equipGrpId LIKE 'S-NS%' or functionCode >= 'M0042'" } );table.store.fetch( {query: {equipGrpId: "S-NSP*"} } );table.store.count( { query: "equipGrpId = 'G-POLECONC'" } );The table has the following features...
Any feedback is appreciated.
can you post the source code
can you post the source code where it is available 24x7?
I have tried a couple of times, but seems you have just taken everything down.
Thanks