gpt4 book ai didi

asp.net-mvc - MVCContrib 网格在空时显示标题?

转载 作者:行者123 更新时间:2023-12-02 05:54:35 27 4
gpt4 key购买 nike

优雅Action Syntax在 MVCContrib 网格中为我们提供了 Empty()方法。但是,MvcContrib.UI.Grid.GridRenderer<T>.RenderHeader() 的默认行为是在网格为空时隐藏表格列标题。有没有一种方法可以在不需要重大重构的数据不存在时显示标题?

现在我听说过默认隐藏 header 和硬编码一些东西,但这对我来说并不酷。

顺便说一句,这就是幕后发生的事情(在 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();
}

最佳答案

您可以覆盖 HtmlTableGridRenderer 类的 ShouldRenderHeader() 方法。

public class AlwaysRenderHeaderRenderer<T>
: HtmlTableGridRenderer<T> where T : class
{
protected override bool ShouldRenderHeader()
{
return true;
}
}

<%= Html.Grid(Model).RenderUsing(new AlwaysRenderHeaderRenderer<TypeOfModel>()) %>

这种方法的一个副作用是当网格为空时,将呈现一个空的表体而不是消息。提供给 Empty() 的任何文本都将被忽略。这对我来说不是问题,因为无论如何我都是在客户端使用 JavaScript 操作表格,但请注意。

关于asp.net-mvc - MVCContrib 网格在空时显示标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3393001/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com