Editable Data Grid?


Being a new transfer to rails from ASP.NET, I'm looking for some help on
how to approach an old problem with RoR. I build and maintain my
company's internal data site. We deal with finances, and thus I have
pages to display data grids of clients, products, accounts and all that.

These grids are edited on the spot, such that the user will click a data
row and enter "edit mode" on that row without having to go to a new page
(like it's done with scaffolds). These pages have all sorts of data
bound drop-down menus that enable filtering the data in the grid, which
I'd also like to recreate, as well as a free search text box. I'd also
like to spice it all up with some ajax.

So, to sum up, I want to create a page containing a data table (from the
bound model). Rendering the table is simple enough with <% for ... %>
tag, but I'd like to enable the user to click on a row and have it go
into edit mode (with save/cancel option). I'm also interested in how to
bind a drop-down to a table to allow filtering (say, a DDL showing a
list of suppliers for a grid of products). The ajax functionality comes
in on switching to and from edit mode (no page refresh), and when
filtering the grid (also no refresh).

And finally, since I'll be using this on several models, I'd like to be
able to generalize and re-use it without having to copy/paste too much
code (partials?).

I'd appreciate any pointers in the right direction, tips or relevant
links. Many thanks!

I have a simpler version of this problem. I think there are a couple of ways to approach this.

1> If you want the ability to make cell by cell modification in a table, the AJAXian in-place edit is the way to go.

2> I have a table where I want to have the ability to modify multiple cells at once. So I put the whole table in a form. It is updating the whole page, not AJAX.

Email me if you want to brain storm on this. I can share my code, and see if we can come up with a better approach.


Thanks - I'll look into your suggestions, though it might take me a
while to come up with something. When I do, I'll repost to this thread.