如何实现单击按钮后弹出进度条页面,同时执行后台的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