asp.net 进度条的有关问题
asp.net 进度条的问题
我做了一个系统,系统里面有一个功能邮件发送,但是附件上传很慢,操作起来就像系统卡死一样,有什么好的办法解决吗,最好是加一个进度条之类的东西,如果加进度条怎么样添加。
------解决思路----------------------
用线程发送邮件,然后根据上传的大小来更新进度条请看这里
------解决思路----------------------
转换一下思路 使用Uploadify插件吧
------解决思路----------------------
系统卡死一样 , 应该是只用了一个线程吧 再添加一个线程 这样上传时候界面就不会假死了
------解决思路----------------------
UpdateProgress进度条显示、取消功能示例
//设置显示进度条
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
<!--注意以下JavaScript脚本必须位于ScriptManager之后,否则会抛出异常-->
<script type="text/javascript" language="javascript">
// 取得 PageRequestManager 类的实例
var pageManager=Sys.WebForms.PageRequestManager.getInstance();
// 设置当引发 initializeRequest 事件时便运行事件处理函数 initializeRequest
pageManager.add_initializeRequest(initializeRequest);
function initializeRequest(sender, args)
{
if(pageManager.get_isInAsyncPostBack())
{
args.set_cancel(true);
}
}
// 如果当前正在处理一个异步回发而且此异步回发是由“取消加载...”按钮所引发的话,
// 就调用 PageRequestManager 实例的 abortPostBack 方法来取消异步回发。
function AbortPostBack()
{
if(pageManager.get_isInAsyncPostBack())
{
pageManager.abortPostBack();
}
}
</script>
<br />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="lbTimer" runat="server"></asp:Label>
<br />
<asp:Button ID="btnCommit" runat="server" Text="单击我,将开始加载Web窗体页的数据..."
onclick="btnCommit_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
<div style="font-size:xx-small">
服务器加载中...<img src="wait.gif" />
<input id="cmdCancel" onclick="AbortPostBack()" type="button" value="取消加载..." />
</div>
</ProgressTemplate>
</asp:UpdateProgress>
</form>
//处理进度条显示事件
protected void btnCommit_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(5000);//延时5秒钟
lbTimer.Text = DateTime.Now.ToLongTimeString();//5秒后进度条将消失
}
我做了一个系统,系统里面有一个功能邮件发送,但是附件上传很慢,操作起来就像系统卡死一样,有什么好的办法解决吗,最好是加一个进度条之类的东西,如果加进度条怎么样添加。
------解决思路----------------------
用线程发送邮件,然后根据上传的大小来更新进度条请看这里
------解决思路----------------------
转换一下思路 使用Uploadify插件吧
------解决思路----------------------
系统卡死一样 , 应该是只用了一个线程吧 再添加一个线程 这样上传时候界面就不会假死了
------解决思路----------------------
UpdateProgress进度条显示、取消功能示例
//设置显示进度条
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
<!--注意以下JavaScript脚本必须位于ScriptManager之后,否则会抛出异常-->
<script type="text/javascript" language="javascript">
// 取得 PageRequestManager 类的实例
var pageManager=Sys.WebForms.PageRequestManager.getInstance();
// 设置当引发 initializeRequest 事件时便运行事件处理函数 initializeRequest
pageManager.add_initializeRequest(initializeRequest);
function initializeRequest(sender, args)
{
if(pageManager.get_isInAsyncPostBack())
{
args.set_cancel(true);
}
}
// 如果当前正在处理一个异步回发而且此异步回发是由“取消加载...”按钮所引发的话,
// 就调用 PageRequestManager 实例的 abortPostBack 方法来取消异步回发。
function AbortPostBack()
{
if(pageManager.get_isInAsyncPostBack())
{
pageManager.abortPostBack();
}
}
</script>
<br />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="lbTimer" runat="server"></asp:Label>
<br />
<asp:Button ID="btnCommit" runat="server" Text="单击我,将开始加载Web窗体页的数据..."
onclick="btnCommit_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
<div style="font-size:xx-small">
服务器加载中...<img src="wait.gif" />
<input id="cmdCancel" onclick="AbortPostBack()" type="button" value="取消加载..." />
</div>
</ProgressTemplate>
</asp:UpdateProgress>
</form>
//处理进度条显示事件
protected void btnCommit_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(5000);//延时5秒钟
lbTimer.Text = DateTime.Now.ToLongTimeString();//5秒后进度条将消失
}