web中实时更新label值

paulyjin 2009-12-11 02:54:02
各位:我想实现一个效果:
我在web页面中的按钮点击事件中调用了10个方法,当第一个执行完之后,我想让页面中的label的值显示为“方法1执行完毕”,以此类推,请问该如何实现?谢谢
...全文
233 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
屌丝女士111 2009-12-11
  • 打赏
  • 举报
回复
帮你订下
mzjmicrosoft 2009-12-11
  • 打赏
  • 举报
回复
paulyjin 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 jelly_tracy 的回复:]
对于事件里面的十个方法,给每个方法都加一个参数来标识一下
[/Quote]
-----------------------------谢谢了,这个多线程和首次值的更新我现在已经没有问题了,接下来只要在加一个定时器就可以了吧,谢谢
Jelly_tracy 2009-12-11
  • 打赏
  • 举报
回复
对于事件里面的十个方法,给每个方法都加一个参数来标识一下
mzjmicrosoft 2009-12-11
  • 打赏
  • 举报
回复
核心:Ajax+多线程

具体代码 楼主自己来了

多线程:

static void ThreadsDemo()
{
Thread thrd1, thrd2;
thrd1 = new Thread(new ThreadStart(第一个方法));
thrd2 = new Thread(new ThreadStart(第二个方法));
thrd1.Start();
thrd2.Start();
}
static void ThreadFunc1()//第一个函数
{}
static void ThreadFunc2()//第二个函数
{}
//....第十个函数执行完就结束。


Ajax的话:不刷新太简单了

<input id="Button1" type="button" value="不刷新" onclick="startRequest();" />


<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
function startRequest()
{
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET","response.xml",true);
xmlHttp.send(null);
}
function handleStateChange()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
alert("来自服务器的响应:"+xmlHttp.responseText);
}
}
}
</script>
paulyjin 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 youbl 的回复:]
如果10个方法并行执行,前台并不能实时得到10个方法的执行状态
可以在后台设置10个变量,分别在10个方法的线程里设置值,来标识当前方法运行状态

然后前台通过ajax定期(比如每秒)访问后台这10个变量的值
根据值,设置相应的label
[/Quote]
--------------谢谢
jack15850798154 2009-12-11
  • 打赏
  • 举报
回复
学习一下
Lovely_baby 2009-12-11
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
CheckForIllegalCrossThreadCalls = false;
System.Threading.Thread thread = new System.Threading.Thread(Thread_Calc);
thread.IsBackground = true; thread.Start();
}
private void Thread_Calc()
{
for (int i = 0; i < 100; i++)
{
label1.Text = i.ToString();
System.Threading.Thread.Sleep(100);
}
..............
游北亮 2009-12-11
  • 打赏
  • 举报
回复
如果10个方法并行执行,前台并不能实时得到10个方法的执行状态
可以在后台设置10个变量,分别在10个方法的线程里设置值,来标识当前方法运行状态

然后前台通过ajax定期(比如每秒)访问后台这10个变量的值
根据值,设置相应的label
paulyjin 2009-12-11
  • 打赏
  • 举报
回复
哪位能给提供个简单的例子啊谢谢
paulyjin 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chengkouda 的回复:]
这个很简单,10个方法,方法2的时候,就给LABEL1赋值为方法1执行完毕,方法3的时候,就给LABEL2赋值为方法2执行完毕。。。。。依次类推啊
[/Quote]
---------------------------------谢谢了不过这个方法达不到要求,label的值是要等全部执行完之后才显示的
legu1 2009-12-11
  • 打赏
  • 举报
回复
jquery
watsonchia 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sandy945 的回复:]
ajax + 多线程
[/Quote]
实时更新确实应该用ajax来做。
多线程的话不好控制先后的次序,以前我做这个,都是在一个ajax请求完成之后再发出下一个请求
爪哇鹅 2009-12-11
  • 打赏
  • 举报
回复
多线程吧,或者用JS脚本里的延时,但需要前后台频繁传递信息。
paulyjin 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sandy945 的回复:]
ajax + 多线程
[/Quote]
------------谢谢,我也想用这种实现方式,因为我的10个方法是可以同步执行的,但是具体的怎么更新label确没有思路的
chengkouda 2009-12-11
  • 打赏
  • 举报
回复
这个很简单,10个方法,方法2的时候,就给LABEL1赋值为方法1执行完毕,方法3的时候,就给LABEL2赋值为方法2执行完毕。。。。。依次类推啊
阿非 2009-12-11
  • 打赏
  • 举报
回复
ajax + 多线程
xupeihuagudulei 2009-12-11
  • 打赏
  • 举报
回复
可以把第一个label值赋什给其余的label..
阿非 2009-12-11
  • 打赏
  • 举报
回复
ajax

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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