Listbox/Grid/Table with dynamic row heights

I’m looking for a grid/list/dataViewer with four characteristics:

  1. The ability to detect what row is clicked on.

  2. The ability to programmatically define the text color of each row.

  3. Each row automatically alters its height to fit the text content. Cells might contain just a single word or as much as a few paragraphs.

  4. Handles a lot of content well (thousands of rows).

Some of the things I’ve tried:
Listbox and GraffitiSuite Grid both handle most of this but have fixed row heights.
My other thought was to generate an HTML table and display it in an HTMLViewer on the page, but I’m not sure how I would detect which row was clicked on in that case, and how well would it handle a thousand rows or more?

This suites all your needs piDog DataView

I just tried it and it works great for everything I’ve tested so far! The only thing I didn’t try yet is throwing in thousands of rows of data, but I am confident that even if it were to have issues with keeping a massive number of rows in memory, I’ll be able to just throw the data into an SQLite database–I’m particularly enthusiastic about the ability to dynamically load data as needed from a database for scrolling! Perfect!