登陆进度条

一直很想做一个登陆时候的进度条 上图先:

<ext:Button ID="btnlogin" runat="Server" Text="登陆" Icon="Accept" OnDirectClick="Login_Click" >
</ext:Button>


<ext:TaskManager ID="TaskManager1" runat="server">
<Tasks>
<ext:Task
TaskID="Task1"
Interval="1000"
AutoRun="false">
<DirectEvents>
<Update OnEvent="RefreshProgress" />
</DirectEvents>
</ext:Task>
</Tasks>
</ext:TaskManager>

protected void Login_Click(object sender, DirectEventArgs e)
{
Model._Login _lg = new Model._Login();
_lg.UserCode = this.txtusername.Text.Trim();
_lg.Password = this.txtpassword.Text.Trim();
BLL.Login lg = new BLL.Login();
if (lg.UserLogin(_lg))
{


X.Msg.Show(new MessageBoxConfig
{
Title = "请等待",
Message = "正在加载项",
ProgressText = "初始化中...",
Width = 300,
Progress = true,
Closable = false,
AnimEl = this.btnlogin.ClientID
});

this.StartLongAction();
}
else
{
X.Msg.Alert("警告", "账号或密码有误").Show();

}

}
private void StartLongAction()
{
this.Session["Task1"] = 0;
ThreadPool.QueueUserWorkItem(LongAction);

this.TaskManager1.StartTask("Task1");
}


private void LongAction(object state)
{
for (int i = 0; i < 100; i++)
{
Thread.Sleep(100);
this.Session["Task1"] = i + 1;
}
this.Session.Remove("Task1");
}


protected void RefreshProgress(object sender, DirectEventArgs e)
{
object progress = this.Session["Task1"];
if (progress != null)
{
X.Msg.UpdateProgress(((int)progress) / 100f, string.Format(" {0} % {1}", progress.ToString(), 100));
}
else
{
this.TaskManager1.StopTask("Task1");
X.MessageBox.Hide();
//this.ResourceManager1.AddScript("Ext.Msg.notify('Done', 'Your items were loaded!');");
Response.Redirect("Default.aspx");
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值