1

Dears, I tried to use dropdown in my project after updating to bootstrap 4,it was working before but not after update, anyway the issue happened in js the following error appeared whin I tride to click the dropdown button.

Uncaught TypeError: Bootstrap dropdown require Popper.js (https://popper.js.org)
    at Dropdown.toggle (bootstrap.js:1533)
    at HTMLButtonElement.<anonymous> (bootstrap.js:1690)
    at Function.each (jquery-3.0.0.js:359)
    at jQuery.fn.init.each (jquery-3.0.0.js:152)
    at jQuery.fn.init._jQueryInterface [as dropdown] (bootstrap.js:1675)
    at HTMLButtonElement.<anonymous> (bootstrap.js:1842)
    at HTMLDocument.dispatch (jquery-3.0.0.js:5087)
    at HTMLDocument.elemData.handle (jquery-3.0.0.js:4895)

I searched a lot to solve this issue and I tried to include the popper.js from umd and from a link directly into Master Page or in on the same page but it doesn't work

also I tried to change th cssClass but nothing happened.

here is my master page (Default added by Visual Studio)

<head runat="server">
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title><%: Page.Title %> - Arabian Food Supplies</title>

    <asp:PlaceHolder runat="server">
        <%: Scripts.Render("~/bundles/modernizr") %>
    </asp:PlaceHolder>
    <webopt:BundleReference runat="server" Path="~/Content/css" />
    <link href="Content/fontawesome-all.css" rel="stylesheet" />
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />

    <style type="text/css">
        .auto-style1 {
            font-size: small;
            color: #999999;
        }
    </style>


</head>
<body>
    <form runat="server">
        <asp:ScriptManager runat="server" EnablePageMethods="true" EnableCdn="True">
            <Scripts>
                <%--To learn more about bundling scripts in ScriptManager see https://go.microsoft.com/fwlink/?LinkID=301884 --%>
                <%--Framework Scripts--%>
                <asp:ScriptReference Name="MsAjaxBundle" />
                <asp:ScriptReference Name="jquery" />
                <asp:ScriptReference Name="bootstrap" />
                <asp:ScriptReference Name="respond" />                
                <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
                <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
                <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
                <asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
                <asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
                <asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
                <asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
                <asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
                <asp:ScriptReference Name="WebFormsBundle" />
                <%--Site Scripts--%>
            </Scripts>
        </asp:ScriptManager>

first try:

    <div class="btn-group" role="group">
        <button id="btnGroupDrop1" type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Action <span class="caret"></span></button>
        <ul class="dropdown-menu" aria-labelledby="btnGroupDrop1">
            <li>
                <asp:LinkButton ID="LinkButton2" runat="server">Solve</asp:LinkButton></li>
            <li>
                <asp:LinkButton ID="LinkButton3" runat="server">Abort</asp:LinkButton></li>
        </ul>
    </div>

second try

           <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
                Action<span class="caret"></span>
            </button>
            <ul class="dropdown-menu">
                <li><a href="#">Solve</a></li>
                <li><a href="#">Abort</a></li>
            </ul>
        </div>

2 Answers2

0

JUST use CDN for bootstrap 4 or just add popper.js to your webpage

cdn lin for bootstrap 4:<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

download link to popper.js https://github.com/FezVrasta/popper.js/releases

0

I found the solution:

First in Visual Studio go to Tools > NuGet Package Manager > Manage NuGet Packages for Solution then tab on Installed then uninstall AspNet.ScriptManager.bootstrab after that uninstall Bootstrap

Next Step : in Site.Master in ScriptManager tag delete the line <asp:ScriptReference Name="bootstrap" />

and add the following links to the head tag of your master page

<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>