MVCContrib グリッドの洗練されたアクション構文Empty()
は、メソッドを提供します。ただし、 の既定の動作でMvcContrib.UI.Grid.GridRenderer<T>.RenderHeader()
は、グリッドが空の場合、テーブルの列ヘッダーが非表示になります。主要なリファクタリングを必要としない、データが存在しないときにヘッダーを表示する方法はありますか?
デフォルトでヘッダーを非表示にし、何かをハードコーディングすることを聞いたことがありますが、これは私にとってクールではありません。
ところで、これはボンネットの下で起こっていることです (で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();
}