Do not reinvent the wheel. Just use one of the fully functional js grids like jqgrid or extjs if you want a complete package of user interface components. I use jqgrid with yesod, edit lines both in the grid and in the external panel, and send the changes back.
I think the problem with your approach is that you found your hammer (Yesod form library) and are now looking for a nail. You do not need to use every bit of Yesod just because it is there.
source share