C# 加载web页面时显示进度条的js实例方法

本文提供了一种在C# Web应用程序中显示网页加载进度的方法。通过在服务器端输出JavaScript代码,创建一个可见的进度条。利用`Response.Write`输出HTML和JS代码,设置一个定时器来动态更新进度,当页面内容如TreeView控件加载完成后,通过JavaScript隐藏进度条。
摘要由CSDN通过智能技术生成
 
 

            //网页加载进度显示 代码
            //添加 引用 命名空间  using System.Threading;
            //
            //
            Response.Write("<div  style='COLOR: red; POSITION: absolute; ' 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.st
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 C# 中使用分层架构执行 SQL 并显示进度条,可以使用 BackgroundWorker 控件和 DataReader 对象来实现。以下是一个示例代码,可以查询数据库中的数据并显示进度条: 首先,我们需要创建一个数据访问层(DAL),用于执行 SQL 查询和更新。在 DAL 中,我们可以使用 DataReader 对象来查询数据,并将查询结果返回给业务逻辑层(BLL)。 在业务逻辑层中,我们可以使用 BackgroundWorker 控件来执行 DAL 中的查询,并显示进度条。在查询过程中,我们可以使用 ReportProgress 方法更新进度条。 在界面层(UI)中,我们可以创建一个 BackgroundWorker 控件和一个 ProgressBar 控件。当用户单击查询按钮,我们可以使用 BackgroundWorker 控件来执行查询,并在 ProgressBar 控件中显示进度条。 以下是一个示例代码,可以帮助你更好地理解这个过程: DAL 层: ```csharp public class DataAccess { public SqlDataReader ExecuteReader(string connectionString, string sql) { SqlConnection connection = new SqlConnection(connectionString); SqlCommand command = new SqlCommand(sql, connection); connection.Open(); return command.ExecuteReader(CommandBehavior.CloseConnection); } } ``` BLL 层: ```csharp public class BusinessLogic { private DataAccess dataAccess = new DataAccess(); public void QueryData(string connectionString, string sql, BackgroundWorker worker, DoWorkEventArgs e) { SqlDataReader reader = dataAccess.ExecuteReader(connectionString, sql); int count = 0; while (reader.Read()) { count++; } reader.Close(); reader = dataAccess.ExecuteReader(connectionString, sql); int i = 0; while (reader.Read()) { // 处理数据 i++; int progress = (int)((float)i / (float)count * 100); worker.ReportProgress(progress); if (worker.CancellationPending) { e.Cancel = true; break; } } reader.Close(); } } ``` UI 层: ```csharp public partial class Form1 : Form { private BusinessLogic businessLogic = new BusinessLogic(); private BackgroundWorker worker = new BackgroundWorker(); public Form1() { InitializeComponent(); worker.WorkerReportsProgress = true; worker.DoWork += new DoWorkEventHandler(worker_DoWork); worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged); worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted); } private void button1_Click(object sender, EventArgs e) { worker.RunWorkerAsync(); } private void worker_DoWork(object sender, DoWorkEventArgs e) { string connectionString = "Data Source=yourServerAddress;Initial Catalog=yourDataBase;User ID=yourUsername;Password=yourPassword;"; string sql = "SELECT * FROM yourTable"; businessLogic.QueryData(connectionString, sql, worker, e); } private void worker_ProgressChanged(object sender, ProgressChangedEventArgs e) { progressBar1.Value = e.ProgressPercentage; label1.Text = string.Format("{0}%", e.ProgressPercentage); } private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Cancelled) { MessageBox.Show("查询已取消!"); } else { MessageBox.Show("查询已完成!"); } } } ``` 在这个示例代码中,我们首先创建了一个 DataAccess 类,用于执行 SQL 查询。在 BusinessLogic 类中,我们创建了一个 QueryData 方法,用于执行查询并更新进度条。在 UI 层中,我们创建了一个 BackgroundWorker 控件和一个 ProgressBar 控件。当用户单击查询按钮,我们使用 BackgroundWorker 控件来执行查询,并在 ProgressBar 控件中显示进度条
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值