I am using bootstrap tab in .net 8 blazor web app to render component.

Kuldeep Y 41 Reputation points
2024-03-27T10:27:36.8166667+00:00

@page "/QSSManagement"

@using TCSManagement.Shared.Model

@using TCSManagement.Shared.Model.QSSManagementModels

@inject HttpClient Http

@inject IJSRuntime _jsRuntime;

@inject NavigationManager UriHelper

@inject Blazored.SessionStorage.ISessionStorageService session

<AuthorizeView>

<Authorized>

    <div class="content">

        <div class="container-fluid">

            <PageTitle>TCSManagement</PageTitle>

            <div class="content-header">

                <div class="container-fluid">

                    <div class="row mb-2">

                        <div class="col-sm-6">

                            <h1 class="m-0">QSS Management</h1>

                        </div>

                        <div class="col-sm-6">

                            <ol class="breadcrumb float-sm-right">

                                <li class="breadcrumb-item"><a href="/">Home</a></li>

                                <li class="breadcrumb-item active">QSS Management</li>

                            </ol>

                        </div>

                    </div>

                </div>

            </div>

            <div class="card">

                <div class="card-body">

                    @if (ShowexportLoading == true)

                    {

                        <div class="overlayspin" id="loadingOverlay">

                            <!-- Spinner -->

                            <div class="spinner"></div>

                            <p class="loading-text">Please wait Export in Progress....</p>

                        </div>

                    }

                    <ul class="nav nav-tabs">

                        <li class="nav-item">

                            <a class="nav-link active compActive" data-toggle="tab" data-id="0" href="#company">Company</a>

                        </li>

                        <li class="nav-item">

                            <a class="nav-link fabactive" id="idFactory" data-toggle="tab" data-id="1" href="#factory" @onclick="@(()=> Getallfactorydata())">Factory</a>

                        </li>

                        <li class="nav-item">

                            <a class="nav-link" id="idSection" data-toggle="tab" data-id="2" href="#section" @onclick="@(()=>  Getallsectionsdata())">Section</a>

                        </li>

                        <li class="nav-item">

                            <a class="nav-link" id="idTool" data-toggle="tab" data-id="3" href="#tool" @onclick="@(()=>  Getalltoolsdata())">Tool</a>

                        </li>

                        <li class="nav-item">

                            <a class="nav-link" id="idChamber" data-toggle="tab" data-id="4" href="#chamber" @onclick="@(()=> Getallchambersdata())">Chamber</a>

                        </li>

                        <li class="nav-item">

                            <a class="nav-link" id="idDevice" data-toggle="tab" data-id="5" href="#device" @onclick="@(() => Getalldevicesdata())">Device</a>

                        </li>

                        <li class="nav-item">

                            <a class="nav-link" data-toggle="tab" data-id="6" href="#ipconfiguration" @onclick="@(() => Getallipaddressesdata("null"))">Ipconfiguration</a>

                        </li>

                        <li class="nav-item">

                            <a class="nav-link" id="idAddress" data-toggle="tab" data-id="7" href="#address" @onclick="@(() => Getalladdresses("null"))">Address</a>

                        </li>

                        <li class="nav-item">

                            <a class="nav-link" data-toggle="tab" data-id="8" href="#tooltype" @onclick="@(() => Getalltooltypes("null"))">Tool Type</a>

                        </li>

                        <li class="nav-item">

                            <a class="nav-link" id="idContact" data-toggle="tab" data-id="9" href="#contact" @onclick="@(() => Getallcontacts("null"))">Contact</a>

                        </li>

                        <li class="nav-item">

                            <a class="nav-link" data-toggle="tab" data-id="10" href="#collector" @onclick="@(() => Getallcollector("null"))">Collector</a>

                        </li>

                        &nbsp;&nbsp;

                        <a id="ExportCSV" style="float:right;margin-top:5px" @onclick="@(() => ExporttoCSV())"><img src="./images/CsvImage.jpg" style="width:32px; height:32px" /></a>

                        &nbsp;&nbsp;

                        <li class="nav-item">

                            <a class="nav-link" data-toggle="tab" data-id="11" href="#qssorder" @onclick="@(() => GetQssOrdersDetails())">Qss Orders</a>

                        </li>

                        <li class="nav-item">

                            <a class="nav-link" data-toggle="tab" data-id="12" href="#specsheet">Spec Sheets</a>

                        </li>

                    </ul>

                   

                    <div class="tab-content">

                        <div class="tab-pane active compActive" id="company">

                            <br />

                            <CompanyTab CompName="ClickHandlerCompany" CompDrdUpdate="ClickHandlerCompanyDRD" />

                        </div>

                        <div class="tab-pane" id="factory">

                            <br />

                            <FactoryTab factorydata="@factorydata" ShowHideSpinner="@ShowHideSpinner" companydata="@companydata" ExportComIDFabName="ClickHandlerfabData" />

                        </div>

                        <div class="tab-pane" id="section">

                            <br />

                            <SectionTab sectiondata="@sectiondata" ShowHideSpinner="@ShowHideSpinner" companydata="@companydata" Export_SecName_ComId_fabId="ClickHandlerSecData" />

                        </div>

                        <div class="tab-pane" id="tool">

                            <br />

                            <ToolTab toolsdata="@toolsdata" ShowHideSpinner="@ShowHideSpinner" companydata="@companydata" Export_ToolName_QsssecId_ComId_fabId="ClickHandlerToolData" />

                        </div>

                        <div class="tab-pane" id="chamber">

                            <br />

                            <ChamberTab chamberdetails="@chamberdetails" ShowHideSpinner="@ShowHideSpinner" companydata="@companydata" Export_ChambName_Qsstooid_QsssecId_ComId_fabId="ClickHandlerChamData" />

                        </div>

                        <div class="tab-pane" id="device">

                            <br />

                            <DeviceTab devicesdetails="@devicesdetails" ShowHideSpinner="@ShowHideSpinner" companydata="@companydata" Export_DeviceName_chambId_Qsstooid_QsssecId_ComId_fabId="ClickHandlerDeviceData" />

                        </div>

                        <div class="tab-pane" id="ipconfiguration">

                            <br />

                            <IPConfigurationTab ipaddressesdetails="@ipaddressesdetails" ShowHideSpinner="@ShowHideSpinner" IpNameExport="ClickHandlerIpAddress" />

                        </div>

                        <div class="tab-pane" id="address">

                            <br />

                            <AddressTab addressesdetails="@addressesdetails" ShowHideSpinner="@ShowHideSpinner" />

                        </div>

                        <div class="tab-pane" id="tooltype">

                            <br />

                            <ToolTypeTab tooltypesdetails="@tooltypesdetails" ShowHideSpinner="@ShowHideSpinner" />

                        </div>

                        <div class="tab-pane" id="contact">

                            <br />

                            <ContactTab contactsdetails="@contactsdetails" ShowHideSpinner="@ShowHideSpinner" />

                        </div>

                        <div class="tab-pane" id="collector">

                            <br />

                            <CollectorTab collectorsdetails="@collectorsdetails" ShowHideSpinner="@ShowHideSpinner" CollectorNameExport="ClickHandlerCollectorData" />

                        </div>

                        <div class="tab-pane" id="qssorder">

                            <br />

                            <QssOrders ShowHideSpinner="@ShowHideSpinner" qssOrdersdata="@qssOrdersdata" />

                        </div>

                        <div class="tab-pane" id="specsheet">

                            <br />

                            <SpecSheetTab specsheetdata="@specsheetdata" />

                        </div>

                    </div>

                </div>

            </div>

        </div>

    </div>

</Authorized>

<NotAuthorized>

    <div class="login-status"><h1 style="color:red;position: absolute;left: 50%;top: 50%;">You Are Not Logged in .....</h1></div>

</NotAuthorized>

</AuthorizeView>

Above code i am using for navigate between the tabs in .net 8 blazor web app but instead of activating and render the component it just changing the url with 'href' property how i can fix this, please guide me.
Note -: above code is working in .net 7 blazor application.

Developer technologies | ASP.NET | ASP.NET Core
Developer technologies | .NET | Blazor
{count} votes

1 answer

Sort by: Most helpful
  1. Bruce (SqlWork.com) 77,686 Reputation points Volunteer Moderator
    2024-04-04T16:27:33.11+00:00

    your code is using hash navigation with onclick() handlers. the onclick event fires, then the navigation. blazor is expecting the hash target to be a component. as c# onclick handlers are async, they can not cancel navigation like javascript ones.

    note: care must be used with bootstrap as it can change the dom with blazor knowing and blazer can overwrite bootstrap dom changes. you should avoid using any bootstrap javascript components. CSS ones are fine.


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.