当前位置:编程学习 > C#/ASP.NET >>

一个循环显示的问题!!急,急

我们定义一个TextBox(ID为txtMessage),一个Button(ID为txtTest)
private void btnTest_Click(object sender, EventArgs e)
 {
            for (int i = 0; i < 10000; i++)
            {
                this.txtMessage.Text = i.ToString();
            }
}
以上代码的运行结果:消息框内只显示9999,并且有较长的等待时间;

为了实时显示1--9999,要怎么做呢?请各位高手帮忙解答一下! --------------------编程问答-------------------- 你想达到那种效果,只能在客户端用js完成。 --------------------编程问答-------------------- 在windowform中直接在this.txtMessage.Text = i.ToString(); 下面加上Application.Doevent();
就可以了
在webform里面应该用异步比较好
定义一个委托异步执行一个方法 --------------------编程问答-------------------- 实时显示?
那用定时器Timer刷新
设置个开关变量 --------------------编程问答-------------------- 在winform中加上Application.Doevent(); 或者sleep()一下都行的
在web中不建议服务端执行这样的代码,用JS实现吧 --------------------编程问答--------------------

private void btnTest_Click(object sender, EventArgs e) 
 { 
         string str="";
 
            for (int i = 0; i  < 10000; i++) 
            { 
               str+=i.ToString();
            } 

 this.txtMessage.Text = str.ToString(); 



--------------------编程问答--------------------

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script language="javascript" type="text/javascript">
    var y = 0;
 function myTimer()
    {        
        y = 0;
        setInterval("DoSomething()",500);
    }
    function DoSomething()
    {
        if(y != 10000)
        {//debugger;
            MyDiv.innerText = y;
            y++
        }
    }
 </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
<asp:TextBox ID="txtMessage" runat="server" ></asp:TextBox>
<input id="Button1" type="button" value="开始" onclick="myTimer()"/>
 </div>
    </form>
</body>
</html>
--------------------编程问答-------------------- 将MyDiv.innerText = y;改成document.all.txtMessage.value = y;就可以了 --------------------编程问答-------------------- 关注…… --------------------编程问答-------------------- 客户端实现好些,这样的代码怎么会写在服务端?晕。你不可能把页面刷新10000次来实现此效果吧? --------------------编程问答--------------------
引用 5 楼 JustLovePro 的回复:
C# code
private void btnTest_Click(object sender, EventArgs e) 
 { 
         string str="";
 
            for (int i = 0; i  < 10000; i++) 
            { 
               str+=i.ToString();
            } 

 this.txtMessage.Text = str.ToString(); 



先看清楚 --------------------编程问答-------------------- 用客户端代码吧

页面刷新10000次很恐怖的! --------------------编程问答-------------------- 文本框默认是可以添加一行的内容啊
使用列表框listbox吧,或者把文本框设置成multiline --------------------编程问答--------------------
private void btnTest_Click(object sender, EventArgs e)  
 {  
         string str=""; 
  
            for (int i = 0; i   < 10000; i++)  
            {  
               str=i.ToString(); 
               this.txtMessage.Text = str.ToString(); 
               System.Threading.Thread.Sleep(300);//暂停线程是为了较慢显示替换过程
            }   

 }  
本来以为可以,也不对 --------------------编程问答-------------------- private void btnTest_Click(object sender, EventArgs e)
 {
            for (int i = 0; i  < 10000; i++)
            {
                this.txtMessage.Text+ = i.ToString();
            }
}  --------------------编程问答-------------------- private void btnTest_Click(object sender, EventArgs e)
 {
            for (int i = 0; i   < 10000; i++)
            {
                this.txtMessage.Text+ = i.ToString();
            }
}  --------------------编程问答--------------------
引用 6 楼 nwgogogo 的回复:
HTML code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script language="javascript" type="text/javascript">
    var y = 0;
 function myTimer()
    {  …

我在VS2005中运行了,通过,呵呵,谢谢,学习了
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,