.net中后台的一个for循环中的参数,怎样显示到前台?

Feng@_ 2012-03-17 10:33:40
例如:index.aspx 前台页面中包含一个label控件,index.aspx.cs后台有这么一个函数
for(int i=0; i<list.count; i++){
label.text=list[i];
for(...){
//这个for循环执行时间长
}
}
这样只有等第二个for循环执行完之后,label的值才能显示,现在有什么方法可以使第二个for循环还在执行中就可以显示出label的值?
麻烦各位高手指点一下,最好提供一下例子代码,在此感激万分!
...全文
423 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wind_cloud2011 2013-11-21
  • 打赏
  • 举报
回复

测试例子
private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 50; i++)
            {
                label1.Text = i.ToString();

                for (int j = 0; j < 550; j++)
                {
                   
                    j++;
                    textBox1.Text=(i*j).ToString();
                    Application.DoEvents();


                }


            }    
          

        }
wind_cloud2011 2013-11-21
  • 打赏
  • 举报
回复
不然,就会只有等第二个for循环执行完之后,label的值才能显示的
wind_cloud2011 2013-11-21
  • 打赏
  • 举报
回复
在第二循环中加Application.DoEvents(); 就可看到label.text内容的变化
for(int i=0; i<list.count; i++){
   label.text=list[i];
   for(...){
      //这个for循环执行时间长
        Application.DoEvents();
   }
}

  • 打赏
  • 举报
回复
引用 1 楼 gqqnb 的回复:
因为label.text=list[i]; 所以label.Text其实是等于最后一个i所指定的list条目。 你说的“第二个for循环执行完之后,label的值才能显示”是什么意思?
如果lz可以正确地“发现自己”只有在第一个for完毕之后(实际上也要等待一下,等待html输出到客户端,并且被浏览器解析渲染)才能看到label,而不是“第二个for”完毕以后,那么lz也就不会提这种问题了。 有时候,人的问题是出自:连问题都没有搞清楚。
  • 打赏
  • 举报
回复
如果你根本没有什么前端用户交互设计,尽是要个最土的显示而已,你可以写 Response.Write(list[i]); Response.Flush(); for(...){ //这个for循环执行时间长 } 但是你懂的这对web交互界面设计有什么影响吗?但愿你可以理解。
  • 打赏
  • 举报
回复
引用 9 楼 a563005903 的回复:
其实我是想做个爬虫的程序,因为爬虫要循环地获取网址,而我想知道现在到底是循环到哪个地址,想把目前正在爬取的网址显示出来。请问有什么方法可以实现?
自服务式的业务处理,哪有用asp.net写的?asp.net程序员不适合考虑这些。
小猪八Q 2013-11-21
  • 打赏
  • 举报
回复
这个还真不是开一个线程能解决的问题,看lz的意思是想动态实现循环执行的情况,Web端确实不好操作,只能说使用js+ajax实现,到时有可能,而且循环需要js来执行,并动态修改label的值
  • 打赏
  • 举报
回复
ajax www.w3school.com.cn ===================================签名档====================================== 授人以鱼 不如授人以渔
clockwise2 2013-11-21
  • 打赏
  • 举报
回复
嗯,后台里面这么写 一定是等到最后执行完毕了LABEL才会显示,等到网页显示后是看不到list[1] list[2] list[3]的值,而是最后显示的是最后一个设置的list[i],网上很多例子是updateprogress 静态提示 和假进度条,AjaxPro又不能用服务器端控件,实在找不到资料,用别的方法做 LZ有解决办法了没有?
Feng@_ 2012-03-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 thedolphin 的回复:]
这基本不现实,看看asp.net页面生命周期,事件还没执行完就不会去load页面,就算用ajax也得执行完之后返回结果才能修改页面,不知道楼主为什么有这样的需求
[/Quote]
其实我是想做个爬虫的程序,因为爬虫要循环地获取网址,而我想知道现在到底是循环到哪个地址,想把目前正在爬取的网址显示出来。请问有什么方法可以实现?
色拉油 2012-03-18
  • 打赏
  • 举报
回复
这基本不现实,看看asp.net页面生命周期,事件还没执行完就不会去load页面,就算用ajax也得执行完之后返回结果才能修改页面,不知道楼主为什么有这样的需求
zhang308337299 2012-03-18
  • 打赏
  • 举报
回复
把lable要变化的值放进第二个for循环里就可以了撒
Feng@_ 2012-03-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gqqnb 的回复:]

因为label.text=list[i];
所以label.Text其实是等于最后一个i所指定的list条目。

你说的“第二个for循环执行完之后,label的值才能显示”是什么意思?
[/Quote]

1楼可以写个代码试试,前台界面要显示到label的值,只有等后台的循环都结束后,才可以正常显示,我想实现一边循环一边在前台界面显示label的值,是不是应该用多线程?
Feng@_ 2012-03-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dalmeeme 的回复:]

异步查询,ajax+cookie
[/Quote]

有没有例子?刚学.net不久,不是很懂
dalmeeme 2012-03-17
  • 打赏
  • 举报
回复
异步查询,ajax+cookie
  • 打赏
  • 举报
回复
另起一个线程
porschev 2012-03-17
  • 打赏
  • 举报
回复

完全没看懂LZ要问的意思。。

一个Label的赋值,为什么要放在for循环里?
机器人 2012-03-17
  • 打赏
  • 举报
回复
查查 ajax 吧。
gqqnb 2012-03-17
  • 打赏
  • 举报
回复
因为label.text=list[i];
所以label.Text其实是等于最后一个i所指定的list条目。

你说的“第二个for循环执行完之后,label的值才能显示”是什么意思?

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧