Search results

Populate Tab items and their content through ViewBag in ASP.NET Core Tabs control

25 Oct 2021 / 1 minute to read

For the Tab control, the tab items can be rendered in the controller and can be returned as ViewBag to bind as items. You can also map the content to other contents using the mapping id in controller to return as ViewBag. Please refer to the below sample, which takes chart, grid, calender as its content through viewBag content id mapped in view.

Copied to clipboard
@using Syncfusion.EJ2.Navigations;

<div class="info">
    Tab content loaded from ViewBag

<div id="Content1" style="display: none">
    <ejs-chart id="ej2chart" width="100%" height="100%">
            <e-series type="@Syncfusion.EJ2.Charts.ChartSeriesType.Line" xName="x" yName="yValue" dataSource="@ViewBag.datasource" name="Gold" width="2">
                <e-series-marker visible="true"/>
        <e-chart-primaryxaxis interval="1" valueType="@Syncfusion.EJ2.Charts.ValueType.Category" title="Olympic Medal Counts - RIO" />

<div id="Content2" style="display: none">
    <ejs-grid id="ej2grid" allowPaging="true">
        <e-data-manager url="" crossdomain="true" adaptor="ODataV4Adaptor"></e-data-manager>
            <e-grid-column field="ProductID" headerText="Product ID" textAlign="@Syncfusion.EJ2.Grids.TextAlign.Right"></e-grid-column>
            <e-grid-column field="ProductName" headerText="Product Name" width="150"></e-grid-column>
            <e-grid-column field="UnitPrice" headerText="Supplier ID" textAlign="@Syncfusion.EJ2.Grids.TextAlign.Right" width="130"></e-grid-column>
            <e-grid-column field="UnitsInStock" headerText="QuantityPerUnit" textAlign="@Syncfusion.EJ2.Grids.TextAlign.Right" width="120"></e-grid-column>
            <e-grid-column field="Discontinued" headerText="Discontinued" width="140" textAlign="@Syncfusion.EJ2.Grids.TextAlign.Center" type="boolean" displayAsCheckBox="true"></e-grid-column>

<div id="Content3" style="display: none">
    <ejs-calendar id="ej2calendar"></ejs-calendar>

<ejs-tab id="ej2Tab" items="@ViewBag.items"></ejs-tab>
Copied to clipboard
public ActionResult Index()
    List<TabTabItem> tabItems = new List<TabTabItem>();
    tabItems.Add(new TabTabItem { Header = new TabHeader { Text = "Chart" }, Content = "#Content1" });
    tabItems.Add(new TabTabItem { Header = new TabHeader { Text = "Grid" }, Content = "#Content2" });
    tabItems.Add(new TabTabItem { Header = new TabHeader { Text = "Calender" }, Content = "#Content3" });
    ViewBag.items = tabItems;
    //chart data
    List<ColumnChartData> chartData = new List<ColumnChartData>
        new ColumnChartData { x= "USA", yValue= 46 },
        new ColumnChartData { x= "GBR", yValue= 27 },
        new ColumnChartData { x= "CHN", yValue= 26 }
    ViewBag.dataSource = chartData;
    return View();

public class ColumnChartData
    public string x;
    public double yValue;

Output be like the below.

content template