日期:2014-05-16  浏览次数:20526 次

如何实现单击按钮后弹出进度条页面,同时执行后台的bat文件
    请各位高手指点,如何使用asp.net实现单击按钮后弹出进度条的页面,同时执行后台的bat文件。

  我使用c#书写了如下的代码:
protected void Button1_Click(object sender, EventArgs e)
        {
      Response.Write("<script language=javascript>window.showModelessDialog('Demo.aspx','scroll:1;status:1;help:0;resizable:1;dialogWidth:240px;dialogHeight:240px')</script>");


            System.Diagnostics.Process p = new System.Diagnostics.Process();
            p.StartInfo.UseShellExecute = true;
            p.StartInfo.CreateNoWindow = false;//设置为false将会看到程序窗口
            p.StartInfo.WindowStyle = ProcessWindowStyle.Normal;//启动进程时窗口状态
            p.StartInfo.FileName = @"A.bat";

            p.Start();
            p.WaitForExit();
            p.Close();
    }

    结果发现服务器端的bat文件先执行(执行约3分钟),之后才出现进度条窗口。


------解决方案--------------------
可能是因为window.showModelessDialog是模态的吧
3#那样应该就可以了,服务端也可以异步启动bat的
http://www.cnblogs.com/fish-li/archive/2011/11/20/2256385.html
你用
public void AddOnPreRenderCompleteAsync(BeginEventHandler beginHandler, EndEventHandler endHandler, object state);
这种简单处理就行了
------解决方案--------------------
你按钮点击,执行服务器端方法,怎么可能是异步的

用ajax异步调用执行后台方法,前台在点击的时候就弹出进度条窗口
如果要求精确的进度,后台方法执行的时候回发进度数值给前台显示

------解决方案--------------------
我也是网上随便搜,你看看
JQuery+ajax