如何在asp.net c#中实现计时器?

如何在asp.net c#中实现计时器?,c#,asp.net,C#,Asp.net,我想在asp.net web中实现一个计时器,在该计时器中,经过一段时间后,按钮的文本将发生更改。我在gridview中动态创建了按钮,并尝试了以下代码: protected void Timer2_Tick(object sender, EventArgs e) { Label2.Text = "Panel refreshed at: " + DateTime.Now.ToLongTimeString(); for(int i = 0; i< rowcount;

我想在asp.net web中实现一个计时器,在该计时器中,经过一段时间后,按钮的文本将发生更改。我在gridview中动态创建了按钮,并尝试了以下代码:

protected void Timer2_Tick(object sender, EventArgs e)
{
    Label2.Text = "Panel refreshed at: " +
    DateTime.Now.ToLongTimeString();

    for(int i = 0; i< rowcount; i++)
    {
        Button button = new Button();
        if (button.Text == "requested")
        {
            button.Text = "available";
        }
    }
}
protectedvoid Timer2\u勾选(对象发送方,事件参数e)
{
Label2.Text=“面板刷新时间:”+
DateTime.Now.ToLongTimeString();
对于(int i=0;i
但它不起作用。如何解决此问题?

这需要在加载页面后在浏览器上执行客户端代码(JavaScript)。ASP.NET生成页面,将其发送到浏览器,然后服务器处理该页面,直到收到另一个请求。即使您在代码隐藏中创建了计时器,该代码隐藏也是一个超出范围的类,一旦服务器处理完请求就会消失

在最简单的形式中,它看起来像这样:

<script>
    window.setTimeout(function()
    {
        //do something
    }, 10000); //interval in milliseconds - this is 10 seconds.
<script>
<script>
    window.setTimeout(function()
    {
        var label = document.getElementById("MyLabelId");
        label.textContent = "The new value";
    }, 10000); 
<script>
或者,您可以在脚本中尝试以下操作,而不是使用
clientdmode=“Static”

var label = document.getElementById("<%= MyLabelId.ClientID %>");
var label=document.getElementById(“”);

.ClientID
是页面分配给控件的任何ID。这告诉它,无论它为该控件分配了什么ID,都可以将其直接写入脚本。

要更改在GridView中创建的按钮的文本,需要对该按钮对象的引用,button button=new button()只需创建一个与GridView中先前创建的按钮无关的新按钮对象即可。。
<script>
    window.setTimeout(function()
    {
        var label = document.getElementById("MyLabelId");
        label.textContent = "The new value";
    }, 10000); 
<script>
var label = document.getElementById("<%= MyLabelId.ClientID %>");