Tuesday, July 26th, 2005

Prototype based LiveGrid

Category: Library, Prototype

Alley fell in love with Rico LiveGrid when he saw it and wanted to implement it on his site. As he started on this task he items in which he wanted to change, so he has created a new prototype version:

  • No support for the mousewheel
  • Your html-output needs to be serialized (ie. use <a> for <a>)
  • I don’t want the page itself to define the item height by using empty rows, I want it to calculate the height as soon as the first items load
  • Very strict html required (it must be a table with tr’s)
  • The use of Rico.AjaxEngine: ok, so it’s a cool script and everything. But
    imho it’s kind of outdated and bloated (all respects though!). Prototype is being build further, the effects part of prototype has already been seperated from the core and is now maintained at script.aculo.us
    Prototype’s Ajax.updater does just as good a job as the Rico.AjaxEngine, etc.

View a live example



Posted by Dion Almaer at 9:36 am

3.6 rating from 9 votes


Comments feed

How come text in your livegrid is selectable whil;e the one in RICO is not? Good job!

Comment by Roy — August 17, 2005

In Safari 3, in livegrid.js, the intial request to populate the livegrid works just fine, but subsequent requests (those that reuse the ajax.request instead of creating a new) pass jumbled arguments to the server for page data, specifically it seems each character is exploded into a name/value pair. The only fix I can find is to always create a new request object, instead of ever reusing. Is there a more graceful solution?
Here is the code snippet with my comment on if the statement.
//if (!this.ajaxRequest)
var options = {parameters: callParms,
method: ‘get’
options.onComplete = this.ajaxUpdate.bind(this);
this.ajaxRequest = new Ajax.Request(this.url, options);
Object.extend(this.ajaxRequest.options,{parameters: callParms});

Comment by Dan B. — September 3, 2007

I have the same problem that Dan. B but not in Safari. I use
this.ajaxRequest.setOptions({parameters: callParms}) instead of Object.extend(this.ajaxRequest.options,{parameters: callParms});

Comment by bores — November 19, 2007

Leave a comment

You must be logged in to post a comment.