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

您必须检查 hiddenZone ClientID。

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

我也不确定你的“区域”功能是做什么的。但是,如果您也遇到困难,这样的事情可能会为您指明正确的方向:

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 回答