Quantcast
Channel: Active questions tagged blazor - Stack Overflow
Viewing all articles
Browse latest Browse all 4839

How to pass a RenderFragement Template to a Blazor component

$
0
0

I'm stucking on one special thing where I try to pass an object of RenderFragment to a dynamically generated component.

I considered this sample from Devexpress https://docs.devexpress.com/Blazor/401753/common-concepts/customize-and-reuse-components

<DxFormLayout><DxFormLayoutTabPages>        @renderLayoutTabPage()</DxFormLayoutTabPages></DxFormLayout>@code {    private RenderFragment renderLayoutTabPage() {        RenderFragment item = b => {            b.OpenComponent<DxFormLayoutTabPage>(0);            b.AddAttribute(1, "Caption", "My tab");            b.AddAttribute(2, "ChildContent", (RenderFragment)((tabPageBuilder) => {                tabPageBuilder.OpenComponent<DxFormLayoutItem>(0);                tabPageBuilder.AddAttribute(1, "Caption", "DynLayoutItem");                tabPageBuilder.AddAttribute(2, "ColSpanMd", 6);                tabPageBuilder.AddAttribute(5, "Template", (RenderFragment<Object>)((context) => ((itemTemplate) => {                    itemTemplate.OpenComponent<DxTextBox>(0);                    itemTemplate.AddAttribute(1, "Text", text);                    itemTemplate.CloseComponent();                })));                tabPageBuilder.CloseComponent();            }));            b.CloseComponent();        };        return item;    }}

So this is the way they are building a complete new ChildContent Fragment.

my razor file looks like:

    [Parameter] RenderFragment<object> DisplayTemplate {get;set;} //pass this Fragement to the dynamic component    protected override void OnInitialized()    {      ...              b.AddAttribute(3, nameof(DxDataGridColumn.DisplayTemplate), (RenderFragment<Object>)((context) => ((itemTemplate) =>                                {                                    itemTemplate.AddContent<object>(0, DisplayTemplate, context);                                })));       ...    }

When I run this, the DisplayTemplate does not get rendered. I only can see the type string

Microsoft.AspNetCore.Components.RenderFragment`1[System.Object]

What I'm doing wrong here?


Viewing all articles
Browse latest Browse all 4839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>