MVCContrib Grid 中优雅的动作语法为我们提供了Empty()
方法。但是,默认行为MvcContrib.UI.Grid.GridRenderer<T>.RenderHeader()
是在网格为空时隐藏表格列标题。当数据不存在且不需要重大重构时,有没有办法显示标题?
现在我听说默认隐藏标题并硬编码一些东西,但这对我来说并不酷。
顺便说一句,这就是幕后发生的事情(in MvcContrib.UI.Grid.GridRenderer<T>
):
protected virtual bool RenderHeader()
{
//No items - do not render a header.
if(! ShouldRenderHeader()) return false;
RenderHeadStart();
foreach(var column in VisibleColumns())
{
//Allow for custom header overrides.
if(column.CustomHeaderRenderer != null)
{
column.CustomHeaderRenderer(new RenderingContext(Writer, Context, _engines));
}
else
{
RenderHeaderCellStart(column);
RenderHeaderText(column);
RenderHeaderCellEnd();
}
}
RenderHeadEnd();
return true;
}
protected virtual bool ShouldRenderHeader()
{
return !IsDataSourceEmpty();
}
protected bool IsDataSourceEmpty()
{
return DataSource == null || !DataSource.Any();
}