c# - 如何在 blazor 的基础组件中覆盖渲染片段

标签 c# razor blazor webassembly blazorise

我正在使用 Blazorise DataGrid,我想制作一个自定义 DataGridColumn,其中 DisplayTemplate 预先设置为模板,但是如果我从 DataGridColumn 派生,我无法弄清楚我应该如何设置 DisplayTemplate。我从这个开始

   @typeparam TItem
   @inherits DataGridColumn<TItem>

但后来我不知道如何将 DisplayTemplate 渲染片段设置为 Razor 片段。

我还尝试只制作一个包含 DataGridColumn 的组件,并在我的 DataGrid 中引用它,但是无论我将它放在 DataGrid 中的哪个位置,该列始终位于末尾。

我可能是错误的树,但我有很多实现接口(interface)的类,我总是希望为实现该接口(interface)的任何类型的任何数据网格中的特定列设置相同的 DisplayTemplate。因此,为此目的创建一个 DataGridColumn 派生类型似乎是合理的。

最佳答案

您可以在代码部分的派生类中填写 DisplayTemplate:

@typeparam TItem
@inherits DataGridColumn<TItem>

@{
    base.BuildRenderTree(__builder);
}


@code { 
    protected override void OnInitialized()
    {
        base.OnInitialized();
        this.DisplayTemplate = (TItem item) => @<CustomDisplayTemplate T="TItem" Item="@item" />;
    }
}
为此,您需要定义一个名为 CustomDisplayTemplate 的单独 Blazor 组件:
@typeparam T
<h2>@Item.ToString()</h2>

@code {
    [Parameter]
    public T Item { get; set; }
}

关于c# - 如何在 blazor 的基础组件中覆盖渲染片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60557654/

相关文章:

blazor - OnInitializedAsync 与 OnParametersSetAsync

c# - 并行读取和处理文件 C#

razor - 如何在 Blazor 客户端应用程序中使用 Bootstrap 模式?

blazor - Blazor 中每个循环的字段不准确

visual-studio-2010 - MVC 3 Razor 中 @Using block 内的 HTML

asp.net - 如何使用 Razor 在 ASP.NET 网页中编写 at-sign 内部属性?

.net - Blazor United 会取代 WASM 和服务器吗

c# - 如何序列化 DevExpress XtraReport 报告设计

c# - 在 ASP.NET 中可以有多个 Principal 吗?

c# - 如何让用户登录系统并仅在用户单击注销按钮后注销?