1

aspxのみを使用して(C#コードビハインドなしで)タイマー間隔を5000〜10000ミリ秒にランダムに設定したいと思います。

次の例では、エラー メッセージが表示されます。

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 を試みましたが、うまくいきません。

それは可能ですか?

いくつかのインスピレーションを得るために、私はこの方法でいくつかの 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# コードを削除したいと思います。

お役に立てば幸いです。

4

1 に答える 1

0

タグは<%= %>と同等であるため、常に文字列を返しますResponse.Write(" ")

別の方法はコード ビハインドです (コード ビハインドを使用したくない理由を適切に説明すると、潜在的な回答者の関心が高まる可能性があります)。または、<%# %>代わりにタグを使用してください。ただし、これにはコントロールをデータ バインドする必要があり、コード ビハインドを使用するよりも洗練されていない可能性があります。

于 2012-05-20T23:36:23.153 に答える