As pointed out in the question:
EmptyDataTemplate and EmptyDataText not working in GridView
using CSS-Friendly Control Adapters removes the data that
Add the following to RenderContents in GridViewAdapter.cs right before the ///// BODY //// section /////////////// EmptyDataTemplate ///////////////////////
if (gridView.Rows.Count == 0) {
//Control[0].Control[0] s/b the EmptyDataTemplate.
if (gridView.HasControls()) {
if (gridView.Controls[0].HasControls()) {
if (gridView.Controls[0].Controls[0] is GridViewRow) {
rows.Clear();
rows.Add(gridView.Controls[0].Controls[0]);
gvrc = new GridViewRowCollection(rows);
WriteRows(writer, gridView, gvrc, "tfoot");
}
}
}
}
And add the following to GetRowClass right before return className.Trim();
//// EmptyDataTemplate
if ((row.RowType & DataControlRowType.EmptyDataRow) == DataControlRowType.EmptyDataRow) {
className += " AspNet-GridView-Empty ";
}
Finally, if you want to override the standard tfoot style, add a CSS section
.AspNet-GridView table tfoot tr.AspNet-GridView-Empty td
{
}