如何为 AJAX 计时器控件设置随机间隔 ASP.NET

本文关键字:随机 ASP NET 设置 控件 AJAX 计时器 | 更新日期: 2023-09-27 18:34:57

我想仅使用 aspx 将计时器间隔设置为 5000-10000 毫秒(没有后面的 C# 代码(。

以下示例引发错误消息:

Cannot create an object of type 'System.Int32' from its string representation '<%= Random.Next(5000,10000) %>' for the 'Interval' property.

如何更正间隔变量以获取随机间隔调用?

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Timer ID="Timer1" runat="server" Interval="<%= Random.Next(5000,10000) %>">
</asp:Timer>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
    </Triggers>
    <ContentTemplate>
        <%= DateTime.Now.ToString() %>
    </ContentTemplate>
</asp:UpdatePanel>

我尝试将Convert.ToInt32转换为Int32,但它不起作用。

甚至可能吗?

为了获得一些灵感,我设法以这种方式使用一些 C# 代码来解决这个问题:

.aspx:

<asp:Timer ID="Timer1" runat="server" Interval="5000" OnTick="Timer1_Tick">

C# :

protected void Timer1_Tick(object sender, EventArgs e)
{
    Random random = new Random();
    Timer1.Interval = random.Next(5000, 10000);
}

但同样,我想摆脱 C# 代码。

我希望它有所帮助。

如何为 AJAX 计时器控件设置随机间隔 ASP.NET

<%= %> 标签将始终返回一个字符串,因为它等效于 Response.Write(" ")

您的替代方案是代码隐藏(提供您不想使用代码隐藏的原因的良好解释可能会引起潜在受访者的更多兴趣(。或者,改用 <%# %> 标记。虽然,这将要求控件是数据绑定的,这可能是一个比仅使用代码隐藏更不优雅的解决方案。