Use of   should be optional in Grid columns

The default value for data and filter cells in the CGridColumn class is  , with no option for modifying this default. This is not normally a problem since CDataColumn overrides these methods, however CButtonColumn does not override the renderFilterCellContent method, and as such, when using a CButtonColumn in a CGridView with filtering enabled, there is no way to prevent the   entity being used in the filter cell for the CButtonColumn.

This breaks Ajax xhtml, since the   entity is not defined, meaning that to use Ajax pagination in a CGridView page served as xhtml, it is neccessary to extend the CButtonColumn class just to override the renderFilterCellContent method in order for the Ajax request to be correctly inserted into the page.

It seems to me therefore, that either CButtonColumn (and any other similar CColumn classes) should override the renderFilterCellContent method and add an option to allow us to configure another value, or (the best option in my view), CGridColumn should have an extra defaultNull parameter, which is then used as the default value in the rendering methods.

CGridView.nullDisplay is already implemented in CGridView.

Yes, but that doesn’t affect column headers and footers - if you look at the base column class CGridColumn, for the renderFilterCellContent method and another one (I can’t remember offhand which one),   is hard-coded as the cell content. The CDataColumn class then overrides those methods (maybe using the CGridView nullDisplay, I’m not sure), but CButtonColumn does not override the methods, so inherits the base ones from CGridColumn with the   hard-coded - not ideal!

Ok, now it is clear what you mean…

Ok, so no-one seems to have anything to say on this - does this mean that I should file a proper bug report?

Yes please submit a bug. I noticed this too as nbsp; is not XHTML compliant.

Sorry - I forgot to add here that I have already posted a bug report.

Ok, this has been fixed in r3041 (see bug report), so the thread can be closed.