I have used blazor component in Syncfusion Tab control using render fragment (opencomponent method).I would like to know how to use blazor page in Tab control instead of blazor component
For example I have given razor page name as "CustomerPage".
Is there any alternative for open component method for blazor page..
Please help
It's my top most urgent
private Dictionary<string, RenderFragment> razorData { get; set; }
RenderFragment weatherView = builder =>
{
builder.OpenComponent(0, typeof(FetchData));
builder.CloseComponent();
};
public void OnAddItem()
{
var path = "FetchData";
RenderFragment val;
razorData.TryGetValue(path, out val);
TabItems.Add(new TabData() { Header = path, ContentTemplate = val });
}
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
razorData = new Dictionary<string, RenderFragment>();
razorData.Add("FetchData", weatherView);
} |
sorry for late reply..
How to pass value when adding component in Tab
note:
parameter value should be object (model class)
Code:-
if (Tab.Items.Count <= 7)
{
Type type = null;
if (string.IsNullOrEmpty(componentname)) await js.InvokeVoidAsync("LoadAlert", "Please update Component Name", "warning");
else
{
type = Type.GetType( componentname );
TabData = new List<TabItem>()
{
new TabItem() { Header = new TabHeader() { Text = PageName }, ContentTemplate = TabComp(type),Content=Tab.SelectedItem.ToString()}
};
index = Tab.Items.FindIndex(x => x.Header.Text == PageName);
SelectedTab = index;
//if (index == -1)
//{
await Tab.AddTab(TabData, Tab.Items.Count);
SelectedTab = Tab.Items.Count;
//}
}
}
@code{
List<TabItem> TabData; SfTab Tab; RenderFragment weatherView = builder => { builder.OpenComponent(0, typeof(FetchData)); builder.CloseComponent(); }; public async Task OnAddItem() { TabData = new List<TabItem>() { new TabItem() { Header = new TabHeader() { Text = "FetchData" }, ContentTemplate = weatherView} }; await Tab.AddTab(TabData, Tab.Items.Count); } } |
Thanks for reply..
Please check my comments in below screencast
https://www.screencast.com/t/Os10CK3GfAW
@code{
List<TabItem> TabData;
public class FetchInformation
{
public string Values { get; set; }
}
SfTab Tab;
List<FetchInformation> FetchDatas;
RenderFragment weatherView = builder =>
{
builder.OpenComponent(0, typeof(FetchData));
builder.CloseComponent();
};
public async Task OnAddItem()
{
FetchDatas = new List<FetchInformation>
{
new FetchInformation {Values="Hello World!,Hello Galaxy!,Hello Universe!" },
};
foreach (FetchInformation data in FetchDatas)
{
TabData = new List<TabItem>()
{
new TabItem() { Header = new TabHeader() { Text = "FetchData" }, ContentTemplate = @<FetchData Values="@data.Values"></FetchData>}
};
}
await Tab.AddTab(TabData, Tab.Items.Count);
} } |
<ul>
@foreach (var item in Items)
{
<li>@item</li>
} </ul>@code {
private WeatherForecast[] forecasts;
[Parameter]
public string Values { get; set; }
List<string> Items { get; set; }
protected override async Task OnInitializedAsync()
{
forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
Items = Values.Split(',').ToList();
} } |