You have to dynamically generate the .columns property when you dynamically generate .data. Specify the render property to date where appropriate. You would generally use a custom property to take the dataset format, so you can discover the column types. (Lost if you use JSON return format.)
FWIW, I would use my Integration Toolkit to make expression bindings. Some inspiration here, perhaps: