c#关于点击按钮,后台按钮事件中写循环1到100000,让前台的label也显示出当前循环的值。

ASP.NETweb程序,我在一个按钮的事件中,写了一个循环,从1循环到100000,然后在前台用一个label显示当前循环的值,比如说当循环到100的时候,label能... ASP.NET web程序, 我在一个按钮的事件中, 写了一个循环, 从1循环到100000,然后在前台用一个label显示当前循环的值,比如说当循环到100的时候, label能显示100。

这是我的部分源码 :

前台:

<asp:Label ID="lb_wait" runat="server" Text=""></asp:Label>
<asp:Button ID="bt_sc" runat="server" Text="导入" onclick="bt_sc_Click" />

后台:
protected void bt_sc_Click(object sender, EventArgs e)
{
int count=100000;
for (int i = 0; i < count; i++)
{
lb_wait.Text = (i + 1).ToString();
}
}

可是发现实现不了,当点击了按钮后,label会等程序执行完后才显示, 那时候已经显示100000了, 我想要的是想当点击按钮的时候, 每循环一次,然后label的值就改变一次并且在页面能显示看得到,其实我是想自己动手做的类似进度条的了。。。
展开
 我来答
百度网友dc424fd
2014-07-31 · 超过54用户采纳过TA的回答
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:118万
展开全部
楼上两位连前后台的关系都没搞明白,就回答问题,不是误人子弟么?

.net这个扯淡的机制,是前台提交后,后台进行处理,处理完毕后回传到前台显示,所以你这么做,肯定无法得到你想要的结果。

解决方法:
前台提交后,后台程序进行循环,将循环的值存入application级变量。客户端利用ajax发起定时请求,请求的页面将这个application变量值抓取后传回来,客户端显示。

为了能看到这个效果,第一是客户端请求频率要高,第二服务器端没算到一个要显示的值之后,需要sleep一段时间,否则变量被不断覆盖,根本来不及显示。
幻雪灵烽
2014-07-31 · TA获得超过1079个赞
知道小有建树答主
回答量:344
采纳率:0%
帮助的人:148万
展开全部
实际上是从1显示到100000了,是因为他的速度太快,你看不到而已。

可以尝试在循环中断500ms
追问
不是运行速度问题, 我在本地运行的时候程序运行了有几秒很长的时间, 但是在这几秒的时间内, label的值是没有的, 直到程序完全运行完了然后label才会显示最后的一个值。。。
追答

循环中加 System.Threading.Thread.Sleep(500);


protected void bt_sc_Click(object sender, EventArgs e)    
{        
    int count=100000;
    for (int i = 0; i < count; i++)
    {
        System.Threading.Thread.Sleep(500);
        lb_wait.Text = (i + 1).ToString();        
     }    
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jaysongd
2014-07-31
知道答主
回答量:40
采纳率:0%
帮助的人:17.4万
展开全部
循环太快了 看不到,加个线程睡眠试试。
追问
嗯,在网上查了, 好像是要加线程 ,您能给个例子吗?
追答
你这是web程序,为什么不在前台实现呢?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乘风破浪wl
2014-07-31 · TA获得超过327个赞
知道小有建树答主
回答量:206
采纳率:75%
帮助的人:139万
展开全部
循环的时间太短太短了,根本反应不过来,所以肯定显示最后的值啊!
追问
不是运行速度问题, 我在本地运行的时候程序运行了有几秒很长的时间, 但是在这几秒的时间内, label的值是没有的, 直到程序完全运行完了然后label才会显示最后的一个值。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式