日期:2014-05-18  浏览次数:20851 次

在.cs里面写一个for循环输出,每循环一次,怎么做才能在页面上看到数据是逐条输出,不是一次过把得到的数据都列出
.cs

 for(int i = 0;i<10;i++)
{
  TextBox1.Text += i;
}

.aspx
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>


想在页面上看到.cs的输出过程,该怎么做? 求简单例子

------解决方案--------------------
最简单的。在界面上放一个ScriptManager,一个Timer(它们在ajax组可以找到)和一个Label。
将Timer的时间间隔设置为1000。也就是1秒。

在Timer1的Tick中编写如下代码:
C# code
int n = Convert.ToInt32(Label1.Text);
Label1.Text = (n >= 10) ? "10" : (n + 1).ToString();

------解决方案--------------------
js定时刷新页面
------解决方案--------------------
TextBox1.Text += i;
后面加一句

response.write("i="&i&"<br />");
------解决方案--------------------
如此“逐条输出”。就是分行显示啊。。。
给文本框TextMode设置MultiLine。
TextBox1.Text += i;
=〉
TextBox1.Text += (i.ToString() + "\n");

------解决方案--------------------
有两种简单的方法:
一、把页面超时时间设的足够长,设置页面缓存,每输出一行flush一次修改控件值的脚本。
二、一次将数据输出到浏览器中,然后用js控制达到逐条显示的效果。
------解决方案--------------------
这个还是很早以前写asp的时候为了显示一段脚本的执行过程想的办法,方法不是很好,不过简单:
for (int i = 0; i < 10; i++)
{
DateTime dtm = DateTime.Now;
while (DateTime.Now.Subtract(dtm).TotalSeconds < 2) ;
Response.Write("<script type='text/javascript'>document.body.all.txtMain.value = " + i + ";</script>\n");
Response.Flush();
}

现在来说可能用ajax做长连接比较好,不过那时候还不知道ajax为何物。
------解决方案--------------------
一看就是新手、控件流。

生成静态的时候,用FOR是不对的,比如你有5000篇文章要生成,你FOR这一下,要等5000篇生成完后客户端才会有反……

这个时间将非常的长,还没等你整完,已经超时了,

或者你要说改超时时间,

当然,那是可以的

但那时你会知道“等待是种煎熬”

我见过的做法:
Default.aspx中获取要生成的文章主键列表,例如ID=[1,2,3,4,5,6];

丢给JS(建议使用Jquery框架的ajax)

JS数组循环(这里要考虑等上一次生成执行完之后才能取下一个ID)

ajax将ID值做为参数POST给Create.ashx(此程序负责生成)

例如 Create.ashx?ID=1 这样的形式。

生成完毕Create.ashx输入“生成XXXX成功”的信息

JS将此信息通过DOM操作显示在Default.aspx的页面上。

要简单示例,加QQ:603869636