For the sake of anyone else who would like to use the above hack, I discovered the following non-obvious quirk: any time you rebind the data adapter, you have to reattach the columngroup click handler. This is of particular interest to anyone who implements custom sorting functions, where rebinding the data adapter is often necessary.