gpt4 book ai didi

javascript - 设置一个asp :HiddenField value from codebehind and access in javascript function

转载 作者:太空宇宙 更新时间:2023-11-03 18:27:28 24 4
gpt4 key购买 nike

我正在尝试为 asp:Timer 设置一个倒数计时器,它会在完成后刷新页面。我正在做的是在初始化时设置计时器间隔和隐藏值,然后调用一个 javascript 函数,该函数使用隐藏字段的信息启动倒计时计时器。

设置了间隔,并设置了隐藏字段值,但是在尝试了各种方法之后,我得到的结果是一个问题,即在 javascript 运行时隐藏字段值未初始化。当我尝试在文档加载时直接调用该函数时,它也未初始化。

这是我目前正在使用的代码。

代码隐藏

DateTime refreshTime;
protected void refreshHidden_Init(object sender, EventArgs e)
{
refreshTime = DateTime.Now.AddSeconds(60);
refreshHidden.Value = refreshTime.ToString();
int timeToFresh = (int)(refreshTime - DateTime.Now).TotalMilliseconds;
refreshTimer.Interval = timeToFresh;
refreshTimerJS();
}

protected void refreshTimerJS()
{
StringBuilder script = new StringBuilder();
script.Append("<script type=\"text/javascript\">");
script.Append("var dt='");
script.Append(refreshTime.ToString());
script.Append("';");
script.Append("</script>");
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "DateVars", script.ToString());
}

页面

<div id="autopriseUpdate" class="content">
<asp:Timer runat="server" ID="refreshTimer" Interval="600000" OnTick="refreshTimer_Tick"></asp:Timer>
<asp:Label runat="server" ID="refreshLabel" Text="1m 0s"></asp:Label>
<asp:HiddenField runat="server" ID="refreshHidden" OnInit="refreshHidden_Init"/>
</div>
<script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="js/jquery.countdown.min.js"></script>
<script type="text/javascript" src="js/refresh.js"></script>

javascript

$(document).ready(function () {
refreshJS();
});

function refreshJS(){
var dt = new Date($('#refreshHidden').value);
$('#refreshLabel').countdown(dt).on('update.countdown', function (event)
{
$(this).html(event.strftime('%M:%S'));
});
}

隐藏字段值已设置,asp:Timer 间隔倒计时并在点上刷新,但倒计时计时器未启动。我最好的猜测是,为了事情的发生,我需要修复一些东西,但我没有任何线索。

我不能只对倒计时值进行硬编码,因为我要创建 refreshTime 变量,因此用户可以选择页面刷新之间的分钟数。

如果有人知道如何让我的 javascript 工作或如何以其他方式从代码隐藏中获取 DateTime 值并加以利用,我将非常感谢您的帮助!

最佳答案

作为 Mike 答案的替代方案,您还可以设置 ClientIDMode到静态,你的 jQuery 将按原样工作。 (假设您使用的是 .NET 4.0 或更高版本)

<asp:HiddenField runat="server" ClientIDMode="Static" ID="refreshHidden" OnInit="refreshHidden_Init"/>

关于javascript - 设置一个asp :HiddenField value from codebehind and access in javascript function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30986747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com