Frage

In meiner MS SQL-Tabelle, las ich in einem "time_zone" für eine Stadt aus einem Datensatz.

Ich mag dann in einer Javascript-Funktion diese Zeitzone verwenden, um eine digitale Uhr für die Stadt zu schaffen.

Zur Zeit versuche ich, die time_zone Variable setzen von

Hier ist ein Codeausschnitt aus Default.aspx:

            function showtime() {
                 zone(hiddenZone,clock);
            }
        window.onload = showtime;
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <span id="clock"></span>
    <asp:HiddenField ID="hiddenZone" runat="server" />
    <asp:Label Text="" ID="lblXml" runat="server"></asp:Label>
    </div>
    </form>
</body>
</html>

Der einzige C # ich in meinem Default.aspx.cs haben für lautet:

hiddenZone.Value=timeZone;

Ich habe überprüft, und die Zeitzone hat den aus der Datenbank gelesen korrekten Wert.

Die Fehlermeldung, die ich von der JS in der „Showtime“ Funktion erhalten ist: „hiddenZone ist nicht definiert“

Wie kann ich die „timezone“ C # Variable in mein Javascript bekommen und es für die Funktion verwenden?

War es hilfreich?

Lösung

Sie müssen prüfen, gegen die hiddenZone ClientID.

function showtime() {
                 zone(
                      document.getElementById('<%=hiddenZone.ClientID%>'),
                      clock
                   );
            }

ASP.NET erstellt einen neuen Namen für Objekte, die es auf der HTML-Seite erstellt, so dass sie nicht das gleiche sein wie das, was Sie die ID angeben zu sein.

Andere Tipps

Sie können Ihren vorhandenen Code verwenden, indem Sie ersetzen:

function showtime() {
    zone(hiddenZone, 'clock');
}

mit

function showtime() {
    var elem = document.getElementById('<%= hiddenZone.ClientID %>');
    // if you are using ASP.NET AJAX use:
    // var elem = $get('<%= hiddenZone.ClientID %>');

    zone(elem.value, 'clock');
}

Ich bin mir nicht sicher, was Ihre ‚Zone‘ Funktion entweder der Fall ist. Aber so etwas wie dies kann man in der richtigen Richtung, wenn Sie auch Schwierigkeiten haben, werden mit ihm auch:

function zone(tz, dispID) {
    var elem = document.getElementById(dispID);
    // if you are using ASP.NET AJAX use:
    // var elem = $get(dispID);

    elem.innerHTML = tz;
}

Alternativ kann, wenn es sich um ein öffentliches Eigentum auf Ihrer Seite können Sie Ihr Verweis auf die asp entfernen: Hidden und einfach verwenden:

function showtime() {
    zone(<%= MyFormsTimeZoneProperty %>, clock);
}

Legen Sie es in Server-Seite-Tags

        function showtime() {
             zone('<%= hiddenZone.Value %>',clock);
        }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top