我用C#编asp.net网页。在一个按钮button1中,有一段代码运行时间较长,于是我想在按钮按下之后,用一个label1来显示一小段字符:label1.text="正在查询中,请稍等...",然后在button1代码执行的最后一行代码上再消去label字符:label1.text="".但运行结果却是没有显示label1的任何代码,我将消去label1字符的代码注销后,发现所有代码都运行完之后,才出现"正在查询中,请稍等..."字样,这是怎么回事呢?我用了ajax+asp.net。

解决方案 »

  1.   

    protected void Button1_Click(object sender, EventArgs e)
            {
                Label1.Text ="查询中,请稍后...";
                //数据库查询及处理代码一大段
                  Label1.text="";
            }
      

  2.   

    把代码发上来看看吧,应该label什么都不显示,因为asp.net页面是在后台的代码全部执行完毕之后才回送页面,显示执行的结果。你可以再button的onClientClick的事件里面调用一个js函数。把label的内容写成“正在查询中,请稍等...”。然后执行完后台代码之后,清空label
      

  3.   

    protected void Button1_Click(object sender, EventArgs e) 
            { 
                Label1.Text ="查询中,请稍后..."; //通俗的说这句代码会被下面的Label1.text="";覆盖
                //数据库查询及处理代码一大段 
                  Label1.text=""; 
            }
      

  4.   

    用JQuery.ajax嘛,有个load的.success后就显示数据啊。
      

  5.   

    天,我是按照winform的思路去编的,结果还真出问题了,那应该怎么办呢?
      

  6.   

    好像没有这个方法,在winform里倒是有
      

  7.   

    解决了。修改后的代码如下:
    在界面的代码中先加入如下的javescript代码。
        <script type="text/javascript">
          function Navigate()
          {
            document.getElementById('Label3').innerText="查询中,请稍后...";
          }    
          
        </script>
    再在button的动作里加上onclientclick="Navigate()"这一节代码。
    这样的作用就是按下按钮后,label3就显示出来了。
    在button1_click里面,就不要label1.text="查询中,请稍后...";直接在最后加上label1.text=""。
    运行代码后,效果不错。当按下按钮时,label1.text就显示出来了,查询结束后,label的提示信息就没了。这段代码来源于msdn网站上关于onclientclick的例子源码。
      

  8.   

    用ajax 中的UpdateProgress 控件轻松实现!
      

  9.   

    protected void Button1_Click(object sender, EventArgs e) 
            { 
                Label1.Text ="查询中,请稍后..."; 
                //数据库查询及处理代码一大段 
                  Label1.text=""; 
            }
    这是不行的,这段代码只在服务器的内存中执行了, 不应反应到IE浏览器中
    Label1显示"查询中,请稍后..."
    应该用javascript在IE中执行显才行.
      

  10.   

    www.51csharp.net,这是一个纯C#与ASP.NET技术站点,收录了许多水晶报表、VTK、GIS技术资料,欢迎大家常来参观。