1

MS SQL テーブルで、レコードから都市の「time_zone」を読み取りました。

次に、Javascript 関数でこのタイム ゾーンを使用して、その都市のデジタル時計を作成します。

現在、time_zone変数を設定しようとしています

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>

Default.aspx.cs にある唯一の C# は次のとおりです。

hiddenZone.Value=timeZone;

私がチェックしたところ、 timeZone にはデータベースから読み込まれた正しい値があります。

「showtime」関数でJSから受け取ったエラーメッセージは次のとおりです:「hiddenZone is undefined」

「timeZone」C# 変数を Javascript に取得し、それを関数に使用するにはどうすればよいですか?

4

3 に答える 3

4

hiddenZoneClientIDと照合する必要があります。

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

ASP.NETは、HTMLページ上に作成するオブジェクトの新しい名前を作成するため、IDを指定したものと同じになることはありません。

于 2009-07-15T17:06:41.227 に答える
2

次を置き換えることで、既存のコードを使用できます。

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

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');
}

'zone'関数が何をするのかわかりません。しかし、このようなことでも問題が発生している場合は、正しい方向を示す可能性があります。

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

    elem.innerHTML = tz;
}

または、ページ上のパブリックプロパティである場合は、asp:HiddenFieldへの参照を削除して、次を使用することもできます。

function showtime() {
    zone(<%= MyFormsTimeZoneProperty %>, clock);
}
于 2009-07-15T17:07:57.650 に答える
0

サーバー側のタグに入れて、

        function showtime() {
             zone('<%= hiddenZone.Value %>',clock);
        }
于 2009-07-15T17:06:22.007 に答える