问题 :     在一个 页面中,,我有一个button 按钮,  这个button 事件里面 会处理很多事情,比如 (动态创建pdf报表。合并pdf报表 。总之需要时间很久。。)我想在 代码走到这个button 事件里面的时候,在当前页面指定的地方 输入一个进行中 什么的 进度条请问应该怎么实现?
主要问题 就是 在提交 button 的时候,在当前页面 的指定地方  输出一个 进行中的 进度条, 什么的俄 给 用户友好提示不止于 时间太久,,用户不知道在做什么?。
请各位提点: 
 顶者有份。。

解决方案 »

  1.   

    写一个层或者用个panel 试试
      

  2.   

    页面中放一个panel,点击按钮后显示这个panel,panel中放置一个loading...的提示,可以是各种样式,图片,文字等等。等操作完毕后再隐藏这个panel。
      

  3.   

    如果怕进度条怕麻烦 可以  在页面上加个Label,vissible= false ,Label.Text="数据处理中,请稍候……"
      触发按钮后 vissible=true;
      

  4.   

    在Ajax中有个控件UpdateProgress可以实现楼主的想法。
    http://www.cnblogs.com/Terrylee/archive/2006/11/12/ASPNET_AJAX_UpdateProgress_Part1.html
      

  5.   


    using System.Threading;
            if (!IsPostBack)
            {
                Response.Write("<div id='mydiv'>");
                Response.Write("_");
                Response.Write("</div>");
                Response.Write("<script>mydiv.innerText = '';</script>");
                Response.Write("<script language=javascript>;");
                Response.Write("var dots = 0;var dotmax = 10;function ShowWait()");
                Response.Write("{var output; output = '正在装载页面';dots++;if(dots>=dotmax)dots=1;");
                Response.Write("for(var x = 0;x < dots;x++){output += '·';}mydiv.innerText =  output;}");
                Response.Write("function StartShowWait(){mydiv.style.visibility = 'visible'; ");
                Response.Write("window.setInterval('ShowWait()',1000);}");
                Response.Write("function HideWait(){mydiv.style.visibility = 'hidden';");
                Response.Write("window.clearInterval();}");
                Response.Write("StartShowWait();</script>");
                Response.Flush();
                Thread.Sleep(2000);
                Response.Write("<script>document.getElementById('mydiv').style.display='none';</script>");
                hlRefresh.NavigateUrl = Request.RawUrl;
            }模拟的
      

  6.   

    楼上兄,,, hlRefresh.NavigateUrl   是什么东西?请赐教
     
      

  7.   

    hlRefresh 应该是 一个HyperLink控件的实例化对象。对应楼主的那个button...楼主那里可以写成Response.Redirect 什么什么
      

  8.   

    谁有简单的方法?? 
     who knows ? 
      

  9.   

    这是AJAX啊,用其他技术根本不会有进度条的,都是假等待。
      

  10.   

    具体的代码写出来太多了,只说说思路吧客户端要用拉的方式来取得数据
    脚本用window.setTimeout("delayRun()", 1000);//delayRun()是每秒要回调的函数
    来每隔一秒访问一次服务器以便获得执行进度。访问的一定得是ajax方法。 
    delayRun里应该有类似这样的语句:_default.getProgress(callback);
    其中:_default.getProgress 是服务器端的方法,返回进度的比例。callback是得到进度之后调用的方法。
    callback函数大致是这样的
    callback(response){
        //根据response.value对页面的进度条进行操作
    }
      

  11.   

    不早说....
    我也考虑呢:本来服务器端就很忙,还得定时汇报进度...如果不是迫不得已(领导逼迫),哪有这么做的.
    假的就好做了,弄个gif放上去,运行时visible=true,运行完visible=false.
      

  12.   

    去下微软的AJAX包,里面有现成的...
      

  13.   

    <!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script language="javascript">
    var bgObj,msgObj;
    function alertWin(msg, w, h){ 
    var bordercolor = "#666699"; // 提示窗口的边框颜色 
    var bgcolor = "#FFFFFF"; // 提示内容的背景色

    var iWidth = document.documentElement.clientWidth; 
    var iHeight = document.documentElement.clientHeight; 
    bgObj = document.createElement("div"); 
    bgObj.style.cssText = "position:absolute;left:0px;top:0px;width:"+iWidth+"px;height:"+Math.max(document.body.clientHeight, iHeight)+"px;filter:Alpha(Opacity=30);opacity:0.3;background-color:#000000;z-index:101;";
    document.body.appendChild(bgObj); 

    msgObj=document.createElement("div");
    msgObj.style.cssText = "position:absolute;font:11px '宋体';top:"+(iHeight-h)/2+"px;left:"+(iWidth-w)/2+"px;width:"+w+"px;height:"+h+"px;text-align:center;z-index:102;";
    document.body.appendChild(msgObj);


    msgObj.innerHTML = msg;    

    function getEvent() {
       return window.event || arguments.callee.caller.arguments[0];
    }
    </script>
    </head>
    <body>
    <script>
    alertWin('<img src=http://hiphotos.baidu.com/i3ws/pic/item/8254d13f5d8b03c37d1e7199.jpg />',300,20)
    </script></body>
    </html>
    <script>
    //document.body.removeChild(bgObj);//这里解除注释即可在页面加载完成后自动去掉等待提示
    //document.body.removeChild(msgObj);//这里解除注释即可在页面加载完成后自动去掉等待提示
    </script>
      

  14.   

    呵呵,假的太容易了。弄个div,里面一张gif图片,隐藏。一小段js代码...
      

  15.   

    在submit 后,在当前页面输出进行中 进度条(顶者有份) 
    ====>
    已经submit了,当前页面就提交了,当前页面只有等到服务器处理完提交的请求之后才会再显示. 
    要在同一页面中实现这样的效果,还得用ajax