繁体   English   中英

在循环异步运行asp.net时将值添加到文本框中

[英]add values into textbox while loop is running asynchronously asp.net

如何在asp.net C#中长时间运行循环的情况下将值添加到文本框中并显示它们

例如

private void StartButton_Click(object sender, EventArgs e)
    {
      for(int i=1; i<=100; i++)
      {
//do some work such as add values into db
//then display values on each iteration
        textBox2.Text = i.ToString();

      }

    }

根据您的需要,如果您希望所有数据都在一个文本框中,请执行以下代码。

private void StartButton_Click(object sender, EventArgs e)
    {
      for(int i=1; i<=100; i++)
      {
        textBox2.Text += i.ToString()+" ";
      }    
    }

ASP.NET的问题在于,每次更新textBox2.Text属性时,不会刷新您的进程。 相反,它只会显示最后执行的操作,因为HTML只会在最后显示并发送。

您可以采用一些解决方法来解决此问题,但是它们使用AJAX和异步调用。

我遇到了类似的情况,我所做的是通过AJAX调用启动了该过程。 然后,当我需要更新状态时,我将更改Session对象中的值,并让AJAX调用定期在客户端更新状态。 但是,也许还有更好的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM