+ Start a Discussion

dynamic editable table

I need to build an application that will allow a user update many records quickly in a single page.  The idea is to enter some search criteria (State, Name, Zip, date range, etc.), execute the query and return an Excel-ish table display to the user, where the individual cells are editable.  How would you go about getting this done as efficiently (and quickly) as possible?  Enhanced list views - in combination with a visual force page, this is almost there and the paginator makes it easy to work with a large number of records.  But the double-click/popup/save is just too cumbersome for really effective editing.  I also will not know the number of columns returned until runtime, so the table has to be seriously dynamic, both rows and columns.  Ideally the user would edit a cell, tab to the next and keep editing.  Changed cells would be highlighted and then when the user is ready, click a single button to commit all changes to the database.  What's the best approach to build something like this?

have you been able to achieve this functionality. We have a similar requirement of dynamically identifying columns and rows of the table.
Not yet.  I'm currently playing with a visual force page and ajax, but I'm not getting what I'm really after.  I'm starting to think about changing the requirements, but the ability to quickly edit a lot of records on a single page seems like a big win for anyone.  There's got to be an effective way to do this.

Ok I'm making progress.  I've got a button on the Account record that opens a VisualForce page rendering the Account and some related records using the standard controller and an extension, rendering the results into a pageBlockTable.  Within the table I'm using this trick posted by David to get a table that allows quick editing.  Right now I'm playing with the mouse and keyboard events to see what the fastest method to edit fields is, but the idea is a user can click or tab through the table, editing values as needed and if changed, dynamically update the record as they tab or click away.

<apex:column > <apex:facet name="header"><b>Text Value</b></apex:facet> <apex:outputPanel id="varPanel"> <apex:actionSupport action="{!toggleEditValue}" event="onclick" rerender="varPanel"></apex:actionSupport> <apex:outputField value="{!aVar.Value__c}" rendered="{!NOT(editValue)}"/> <apex:inputField value="{!aVar.Value__c}" rendered="{!editValue}"/> </apex:outputPanel> </apex:column>


The tools to look at are: Mass Update Anything
and the Forec.Com Excell Connector.
Both of these tools should do what you are trying to accomplish.