Avatar billede hrc Mester
31. august 2020 - 14:48 Der er 1 kommentar og
1 løsning

Bootstrap.DateTimePicker - helt tomt projekt - fejler

Visual studio 2019, ent. Frame 4.7.2, Starter et tomt projekt (ASP.NET WebApplication (C#)), MVC v4. Jeg får std. projektet, sletter about og contact, fjerner alt irrelevant i _layout.cshtml og index.cshtml (projektet virker bagefter).

Tilføjer nu DateTimePicker-koden:

Går til: https://eonasdan.github.io/bootstrap-datetimepicker, kører nuget-scriptet fra kommandolinien, kopierer initialiseringen ind i _layout.cshtml. De 4 scriptlinjer og det ene link tjekkes. Jeg retter: "~/scripts/bootstrap-datetimepicker.*js" til 2 linjer, for det gav en ref-fejl: "~/scripts/bootstrap-datetimepicker.js" og "~/scripts/bootstrap-datetimepicker.min.js".

Kopierer det simple DTP-eksempel ind i index.cshtml og tester projektet i Edge. Der vises en input med ikonet placeret et stykke fra den. Klikker man på det, så sker der ikke noget. Edge siger:
jquery-3.4.1.min.js:2 jQuery.Deferred exception: $(...).datetimepicker is not a function TypeEr-ror: $(...).datetimepicker is not a function
    at HTMLDocument.<anonymous> (https://localhost:44341/Home/Index:46:39)
    at e (https://localhost:44341/scripts/jquery-3.4.1.min.js:2:29453)
    at t (https://localhost:44341/scripts/jquery-3.4.1.min.js:2:29755) undefined
k.Deferred.exceptionHook @ jquery-3.4.1.min.js:2
jquery-3.4.1.min.js:2 Uncaught TypeError: $(...).datetimepicker is not a function
    at HTMLDocument.<anonymous> (Index:46)
    at e (jquery-3.4.1.min.js:2)
    at t (jquery-3.4.1.min.js:2)

Går nu ind og opgraderer de 6 pakker som NuGet siger kan opdateres (bootstrap: 3.4.1 -> 4.5.2, jquery: 3.4.2 -> 3.5.1, moments: 2.9.0 -> 2.27.0). Nu forsvandt ikonet.

Kører jeg projektet, så er fejlmeddelelsen fra Edge Console nu:
Uncaught TypeError: $(...).datetimepicker is not a function
    at HTMLDocument.<anonymous> ((index):46)
    at e (jquery-3.5.1.min.js:2)
    at t (jquery-3.5.1.min.js:2)

Det er tydeligt jeg er uvant med disse ting, men hvorfor kan jeg ikke lave et "Hello world"-lignende projekt med den indbyggede datetime-picker?
Avatar billede hrc Mester
31. august 2020 - 16:04 #1
Hvis jeg kigger på CSS-klasserne, glyphicon glyphicon-calendar, så findes de tilsyneladende ikke. Skal der downloades definitionsfiler?

<div class="container">
    <div class="row">
        <div class='col-sm-6'>
            <div class="form-group">
                <div class='input-group date' id='datetimepicker1'>
                    <input type='text' class="form-control" />
                    <span class="input-group-addon">
                        <span class="glyphicon glyphicon-calendar"></span>
                    </span>
                </div>
            </div>
        </div>
        <script type="text/javascript">
            $(function () {
                $('#datetimepicker1').datetimepicker();
            });
        </script>
    </div>
</div>

I dokumentationen støder jeg på "Note All functions are accessed via the data attribute e.g. $('#datetimepicker').data("DateTimePicker").FUNCTION()". Har det med ovenstående at gøre?

Hvad er i øvrigt forskellen mellem at bruge enkeltping og apostroffer? Kigger man ovenfor så bruges begge.
Avatar billede hrc Mester
01. september 2020 - 10:44 #2
Lukker den igen.

Troede der var en vis grad af bagud kompatibilitet, men denne datetimepicker er til bootstrap v. 3 og jeg kører 4 og det virker ikke. Har fundet en anden (Tempus Dominus Bootstrap 4) som jeg prøver at mingelere ind, da NuGet har ikke nogen pakke - hvis den overhovedet får. Filerne er sidst opdateret i 2018, så måske er jeg igen på vej ud ad en forkert vej med en død komponent.

Hvis I har gode erfaringer med andre, så hører jeg gerne om dem.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester