protected void btnOK_Click(object sender, EventArgs e)
    {        lblMsg.Visible = true;
        lblMsg.Text = "正在获取欠费信息列表,请稍候......";
        btnOk.Enabled = false;        // 大量数据处理         lblMsg.Text = "";
        lblMsg.Visible = false;
        btnOk.Enabled = true;
    }代码看上去是没问题的,但是为什么实现的时候根本不会显示  lblMsg的信息,按钮btnOk也没有变灰,根本就没变化。有没有办法解决,或者是有什么替代方法没?最好贴出具体实现代码
谢谢如果是刚打开页面就需要等待的话  又该怎么处理呢?

解决方案 »

  1.   

    你处理的时候,改变状态的代码只在后台,根本没传到浏览器啊,你看到的只是最后的状态。就是说只有这个才有效:
    lblMsg.Text = ""; 
    lblMsg.Visible = false; 
    btnOk.Enabled = true; 需要用js改状态
      

  2.   

    在页面随意任意加这段html<div id="dealing" style="width: 100%; height: 100%; position: absolute; top: 0px;
            left: 0px; background-color: Black; filter: alpha(opacity=50); -moz-opacity: 0.5;
            opacity: 0.5; z-index: 1000; display: none;">
            <table width="100%" height="100%">
                <tr>
                    <td align="center" valign="middle">
                        <div style="background-color: White;">正在获取欠费信息列表,请稍候......</div>
                    </td>
                </tr>
            </table>
        </div>
    在btnOK的OnClientClick写OnClientClick="document.getElementById('dealing').style.display = 'block'"
      

  3.   

    只看到黑色的底,并没有看到白色的字呀,这些字“正在获取欠费信息列表,请稍候.....”都没有看到另外OnClientClick这个事件已经有内容了,OnClientClick="return confirm('删除现有数据,确定吗?')",怎么再把你说的那话加上去呢???
      

  4.   

    后台代码是在服务器执行的
    从你的请求一开始,服务器接收到你的请求后,直到整个过程处理完成,才把处理结果返回给提交请求的客户端,所以中间过程你是看不到的,因为是在服务器端处理,
    如果要达到你想要的那个效果
    至少有两个途径
    1.用div处理
    2.通过ajax异步调用
      

  5.   

    写ajax吧,网页和winform是不一样的
      

  6.   

    我测试的时候可以看到白色的字或者你适合修改一下那个div的样式
    OnClientClick可以像下面这样写OnClientClick="if (confirm('删除现有数据,确定吗?')) {document.getElementById('dealing').style.display = 'block'; return true;} else return false;"
      

  7.   

    <div id="dealing" style="width: 100%; height: 100%; position: absolute; top: 0px;
            left: 0px; background-color: Black; filter: alpha(opacity=50); -moz-opacity: 0.5;
            opacity: 0.5; z-index: 1000; display: none;">可以显示了,但是 filter: alpha(opacity=0);  这个的作用应该是透明效果50%吧,怎么调都没用,跟浏览器有关系吗??opacity: 0.5; 这句也是,这两个属性编缉状态下有红色的波浪线,移上去提示 验证(CSS2.0):***不是已知的CSS属性名
    请问下怎么解决????
    我用的是VS2008
      

  8.   

    楼上说的情况我已经知道了,跟CS程序不同,BS只看结果的现在的问题是这个:<div id="dealing" style="width: 100%; height: 100%; position: absolute; top: 0px; 
            left: 0px; background-color: Black; filter: alpha(opacity=50); -moz-opacity: 0.5; 
            opacity: 0.5; z-index: 1000; display: none;"> 可以显示了,但是 filter: alpha(opacity=0);  这个的作用应该是透明效果50%吧,怎么调都没用,跟浏览器有关系吗??opacity: 0.5; 这句也是,这两个属性编缉状态下有红色的波浪线,移上去提示 验证(CSS2.0):***不是已知的CSS属性名 
    请问下怎么解决???? 
    我用的是VS2008 IE6
      

  9.   

    我想是不是程序时按照顺序执行的,也就是你的大量数据操作那块,要耗时很多,这样游览器的进度条前进的很慢。这个时候,你要求的效果是看不出来的。这个我想你用AJAX来实现,我想效果要好很多。比如微软的AJAX框架中的UpdatePanel和UpdateProcess结合使用。就可以达到你要求的效果。
      

  10.   

    那种方法试过,可是可以
    现在的问题是这个: <div id="dealing" style="width: 100%; height: 100%; position: absolute; top: 0px; 
            left: 0px; background-color: Black; filter: alpha(opacity=50); -moz-opacity: 0.5; 
            opacity: 0.5; z-index: 1000; display: none;"> 可以显示了,但是 filter: alpha(opacity=0);  这个的作用应该是透明效果50%吧,怎么调都没用,跟浏览器有关系吗??opacity: 0.5; 这句也是,这两个属性编缉状态下有红色的波浪线,移上去提示 验证(CSS2.0):***不是已知的CSS属性名 
    请问下怎么解决???? 
    我用的是VS2008 IE6
      

  11.   

    //----前台
    在页面放个层 
    <div id="dealing" style="width: 100%; height: 100%; position: absolute; top: 0px; 
            left: 0px; background-color: Black; filter: alpha(opacity=50); -moz-opacity: 0.5; 
            opacity: 0.5; z-index: 1000; display: none;"> <tablewidth="100%" height="100%"> <tr> <tdalign="center" valign="middle"> <divstyle="background-color: White;">正在获取欠费信息列表,请稍候...... </div> </td> </tr> </table> 
    </div> 
    (这个层没试过行不行,复制上面的,不过这种基本的页面代码你应该会的,不会那就没法了。)
    <scrip>
    function UnShowDivMes()
        {
            setTimeout("document.getElementById('dealing').style.display='';",1000);
        }
    </script>//---后台
    protected void btnOK_Click(object sender, EventArgs e) 
        { 
    //3秒后层隐藏
    Page.RegisterStartupScript("setvisiable", "<script>setTimeout(\"UnShowDivMes();\",3000);</script>");}
      

  12.   

    你这样做,程序执行到最后,然后返回信息给浏览器。“        lblMsg.Visible = true;
            lblMsg.Text = "正在获取欠费信息列表,请稍候......";
            btnOk.Enabled = false;”
    这些代码不就是被后面的代码覆盖了吗?
    思路是这样的。如果要实现这个,必须要与客户端交互,那么得有个值才行啊,
    然后根据值来处理.
    后台写成 msg="正在获取欠费信息列表,请稍候......";
    <div style="display:none" runat="server" id="msg" /></div>
    在onload事件中调用
    方法如下
    function onload_div_write()
    {
    if(document.getElementById("msg").innerHTML!="")
    {
       document.getElementById("msg").style.display="";
    document.getElementById("lblMsg").style.display="none";
    document.getElementById("btnOk").style.display="";
    }
    }
      

  13.   

    alpha(opacity=50); -moz-opacity: 0.5; opacity: 0.5;
    是兼容不种浏览器的透明度的写法,具体对应哪种浏览器我都忘了 - - 波浪提示没有关系的,一样使用。