首頁 後端開發 C#.Net教程 ASP.NET如何實現進度條效果的實例分析

ASP.NET如何實現進度條效果的實例分析

Jun 04, 2017 am 09:45 AM
asp.net 進度條

這篇文章主要為大家詳細介紹了ASP.NET實現簡單的進度條效果,具有一定的參考價值,感興趣的小夥伴們可以參考一下

我們先看下進度條效果

#我點擊了按鈕後他會顯示進度頁面,進度完成後,進度條消失,其實也是比較簡單的了。

我們需要一個進度條程式碼檔案ProgressBar.htm(注意:是沒有head這些標籤的)

<script language="javascript">
  function SetPorgressBar(pos) {
    //设置进度条居中

    var screenWidth = document.body.offsetWidth;
    ProgressBarSide.style.width = Math.round(screenWidth / 2) + "px";
    ProgressBarSide.style.left = Math.round(screenWidth / 4) + "px";
    ProgressBarSide.style.top = "50px";
    ProgressBarSide.style.height = "21px";
    ProgressBarSide.style.display = "block";

    //设置进度条百分比 
    ProgressBar.style.width = pos + "%";
    ProgressText.innerHTML = pos + "%";
  }

  function SetMaxValue(maxValue) {
    ProgressBarSide.style.width = maxValue + "px";
  }

  //完成后隐藏进度条
  function SetCompleted() {
    ProgressBarSide.style.display = "none";
  }

  function SetTitle(title) {
    ProgressTitle.innerHTML = title;
  }
</script>
<p id="ProgressBarSide" style="position: absolute; height: 21px; width: 100px;
  color: Silver; border-width: 1px; border-style: Solid; display: block">
  <p id="ProgressBar" style="position: absolute; height: 21px; width: 0%; background-color: #1475BB">
  </p>
  <p id="ProgressText" style="position: absolute; height: 21px; width: 100%; text-align: center">
  </p>
  <p id="ProgressTitle" style="position: absolute; height: 21px; top: 21px; width: 100%;
    text-align: center">
  </p>
</p>
登入後複製

然後需要一個進度條類別ProgressBar.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;

namespace ZhuoYueE.Dop.Web.UI
{
  /// <summary>
  ///显示进度条
  /// </summary>
  public class ProgressBar : System.Web.UI.Page
  {
    /// <summary>
    /// 最大值
    /// </summary>
    private int MaxValue
    {
      get
      {
        if (ViewState["MaxValue"] == null)
        {
          return 0;
        }
        else
        {
          return Convert.ToInt32(ViewState["MaxValue"]);
        }
      }
      set
      {
        ViewState["MaxValue"] = value;
      }
    }
    /// <summary>
    /// 当前值
    /// </summary>
    private int ThisValue
    {
      get
      {
        if (ViewState["ThisValue"] == null)
        {
          return 0;
        }
        else
        {
          return Convert.ToInt32(ViewState["ThisValue"]);
        }
      }
      set
      {
        ViewState["ThisValue"] = value;
      }
    }
    /// <summary>
    /// 当前页面
    /// </summary>
    System.Web.UI.Page m_page;
    /// <summary>
    /// 功能描述:构造函数
    /// 作  者:huangzh
    /// 创建日期:2016-05-06 11:54:34
    /// 任务编号:
    /// </summary>
    /// <param name="page">当前页面</param>
    public ProgressBar(System.Web.UI.Page page)
    {
      m_page = page;
    }

    public void SetMaxValue(int intMaxValue)
    {
      MaxValue = intMaxValue;
    }

    /// <summary>
    /// 功能描述:初始化进度条
    /// 作  者:huangzh
    /// 创建日期:2016-05-06 11:55:26
    /// 任务编号:
    /// </summary>
    public void InitProgress()
    {
      //根据ProgressBar.htm显示进度条界面
      string templateFileName = AppDomain.CurrentDomain.BaseDirectory + "ProgressBar.htm";
      StreamReader reader = new StreamReader(@templateFileName, System.Text.Encoding.GetEncoding("GB2312"));
      string strhtml = reader.ReadToEnd();
      reader.Close();
      m_page.Response.Write(strhtml);
      m_page.Response.Flush();
    }

    /// <summary>
    /// 功能描述:设置标题
    /// 作  者:huangzh
    /// 创建日期:2016-05-06 11:55:36
    /// 任务编号:
    /// </summary>
    /// <param name="strTitle">strTitle</param>
    public void SetTitle(string strTitle)
    {
      string strjsBlock = "<script>SetTitle(&#39;" + strTitle + "&#39;); </script>";

      m_page.Response.Write(strjsBlock);
      m_page.Response.Flush();
    }

    /// <summary>
    /// 功能描述:设置进度
    /// 作  者:huangzh
    /// 创建日期:2016-05-06 11:55:45
    /// 任务编号:
    /// </summary>
    /// <param name="percent">percent</param>
    public void AddProgress(int intpercent)
    {
      ThisValue = ThisValue + intpercent;
      double dblstep = ((double)ThisValue / (double)MaxValue) * 100;

      string strjsBlock = "<script>SetPorgressBar(&#39;" + dblstep.ToString("0.00") + "&#39;); </script>";

      m_page.Response.Write(strjsBlock);
      m_page.Response.Flush();
    }


    public void DisponseProgress()
    {
      string strjsBlock = "<script>SetCompleted();</script>";
      m_page.Response.Write(strjsBlock);
      m_page.Response.Flush();
    }
  }
}
登入後複製

然後就是呼叫方法了,呼叫很簡單,在頁面的按鈕事件或其他什麼地方加入程式碼,如在按鈕事件裡這麼用

protected void btnImport_Click(object sender, EventArgs e)
    {
      ProgressBar pb = new ProgressBar(this);
      pb.SetMaxValue(110);
      pb.InitProgress();
      pb.SetTitle("这是一个测试数据");
      for (int i = 1; i <= 110; i++)
      {
        pb.AddProgress(1);
        //此处用线程休眠代替实际的操作,如加载数据等
        System.Threading.Thread.Sleep(50);
      }
      pb.DisponseProgress();
    }
登入後複製

怎麼樣,是不是很簡單呢。

以上是ASP.NET如何實現進度條效果的實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用HTML和CSS設定進度條的顏色? 如何使用HTML和CSS設定進度條的顏色? Sep 19, 2023 pm 08:25 PM

在網站開發中,進度條是網站的重要組成部分。進度條顯示了進程的進度。借助它,用戶可以看到網站上正在進行的工作的狀態,包括載入時間、文件上傳、文件下載和其他類似任務。預設情況下,它呈灰色。然而,為了使進度條突出並具有視覺吸引力,可以使用HTML和CSS來改變它們的顏色。什麼是進度條?進度條用於顯示任務的進度。它是一個圖形使用者介面元素。它基本上由一個水平條組成,隨著任務的進行逐漸填充,同時伴隨著百分比值或其他完成指示器。進度條在網路應用程式中用於向使用者提供關於完成諸如文件上傳、文件下載或軟體安裝等過

JavaScript 如何實作頁面載入進度條功能? JavaScript 如何實作頁面載入進度條功能? Oct 27, 2023 am 08:57 AM

JavaScript如何實作頁面載入進度條功能?在現代網路應用中,頁面載入速度是使用者體驗的關鍵因素之一。為了向使用者展示載入過程,許多網站和應用程式會使用載入進度條。 JavaScript提供了一種簡單而有效的方法來實作頁面載入進度條功能。具體實現過程如下:建立HTML結構首先,在頁面的適當位置建立進度條的HTML結構,常見的是將進度條放置在

如何使用Vue實現進度條特效 如何使用Vue實現進度條特效 Sep 19, 2023 am 09:22 AM

如何使用Vue實現進度條特效進度條是常見的一種介面元素,它可以用來展示一個任務或操作的完成情況。在Vue框架中,我們可以透過一些簡單的程式碼來實現進度條的特效效果。本文將介紹如何使用Vue來實現進度條特效,並提供具體程式碼範例。建立Vue元件首先,我們需要建立一個Vue元件來實現進度條的功能。在Vue中,元件是可以重複使用的,我們可以在多個地方使用。建立一個名為Pro

如何使用HTML和CSS建立進度條 如何使用HTML和CSS建立進度條 Sep 05, 2023 am 09:09 AM

概述進度條是任何網路應用程式的主要元件。進度表示某個專案或任務的完成情況。在本模組中,我們將使用HTML建立進度條,並透過CSS對其進行樣式設定。我們還將為進度條提供進度動畫。在此任務中,我們將使用@keyframes來使進度條動畫化。使用動畫樣式屬性,例如動畫持續時間、名稱、計時等。演算法第1步-在文字編輯器中建立HTML樣板。步驟2-建立父div容器並將類別名稱定義為barContainer。步驟3-現在建立目前父div的另一個子級並定義類別名稱。步驟4-建立一個在進度中繼承的子級,該子級將被動畫化

如何使用Vue和Element-UI實現進度條和載入動畫效果 如何使用Vue和Element-UI實現進度條和載入動畫效果 Jul 21, 2023 pm 08:54 PM

如何使用Vue和Element-UI實現進度條和載入動畫效果Vue.js是一款輕量級的前端框架,而Element-UI是一個基於Vue.js的UI元件庫,它提供了豐富的元件和交互效果,可以幫助我們快速開發出漂亮的前端介面。本文將介紹如何使用Vue和Element-UI實現進度條和載入動畫效果。 1.安裝並引入Element-UI首先,

如何使用CSS製作網頁載入進度條的實作步驟 如何使用CSS製作網頁載入進度條的實作步驟 Oct 26, 2023 am 11:00 AM

如何使用CSS製作網頁載入進度條的實現步驟在現代網頁設計中,載入速度對於使用者體驗至關重要。為了提升使用者體驗,可以使用CSS製作網頁載入進度條,讓使用者清楚了解網頁載入進度。本文將介紹使用CSS製作網頁載入進度條的實作步驟,並提供具體的程式碼範例。步驟一:HTML結構首先,需要在HTML中新增一個代表進度條的div元素,如下所示:&lt;divclass=&q

Vue元件開發:進度條元件實作方法 Vue元件開發:進度條元件實作方法 Nov 24, 2023 am 08:56 AM

Vue元件開發:進度條元件實作方法前言:在Web開發中,進度列是一種常見的UI元件,在資料要求、檔案上傳、表單提交等場景中常用來顯示作業的進度。在Vue.js中,透過自訂元件的方式,我們可以很方便地實作一個進度條元件,本文將介紹一種實作方法,並提供具體的程式碼範例。希望能對Vue.js初學者有幫助。組件的結構和樣式首先,我們需要定義進度條組件的基本結構和樣

PHP開發:如何實作文章閱讀進度條和分享功能 PHP開發:如何實作文章閱讀進度條和分享功能 Sep 22, 2023 am 08:06 AM

PHP開發:如何實現文章閱讀進度條和分享功能導讀:文章閱讀進度條和分享功能是提供使用者更好的閱讀體驗和方便分享內容的重要功能。在PHP開發中,我們可以透過一些技術手段來實現這兩個功能。本文將為大家介紹具體的實作方法,並給出對應的程式碼範例。一、文章閱讀進度條的實現實現文章閱讀進度條的關鍵是獲取當前用戶的閱讀進度(即當前滾動的文檔高度),然後將其轉化為相對於整篇文章

See all articles