65.9K
CodeProject 正在变化。 阅读更多。
Home

一个简单的进度条 Web 用户控件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.60/5 (30投票s)

2003年9月9日

CPOL

1分钟阅读

viewsIcon

268857

downloadIcon

7041

轻量级的基于 HTML 表格(无图片)的进度条。

Sample Image - ProgressBar.gif

引言

在一个最近的项目中,我需要一种方法来向用户显示一系列手动推进的网页的进度。如果他们正在浏览第 10 页,共 20 页,我希望他们能够清楚地看到他们已经完成了一半。

我的理想解决方案是一个快速、简单、轻量级的进度条。我曾尝试过一些复杂的想法,例如动态创建图像来表示当前状态,但最终另一位程序员向我展示了一种更简单的方法,即使用 HTML 表格。我采用了这个想法,并通过创建一个我可以在我的 ASP.NET 应用程序中使用(和重用)的 Web 用户控件来扩展它。

使用代码

我创建了一个带有单个标签控件的 Web 用户控件,名为 lblProgress。然后,我添加了一个公共 SetProgress 方法,允许父 Web 表单设置进度。

Public Sub SetProgress(ByVal current As Integer, ByVal max As Integer)
    Dim percent As String = Double.Parse(current * 100 / max).ToString("0")

    If Not percent.Equals("0") And Not percent.Equals("100") Then
        lblProgress.Text = percent + "% complete (" + _
                current.ToString() + " of " + max.ToString() + ")"

    lblProgress.Text = lblProgress.Text & _
        "<TABLE cellspacing=0 cellpadding=0 border=1 width=200 ID="Table1"_
        ><TR><TD bgcolor=#000066 width=" + _
        percent.ToString() + _
        "%> </TD><TD bgcolor=#FFF7CE> _
        </TD></TR></TABLE>"
    End If
End Sub

后来,我添加了一个检查,以防止进度条在达到阈值(在我的例子中为 25%)之前显示。这个想法是,我们不想通过显示他们只有完成了 5% 来打击用户的积极性。相反,我们将从他们达到某个预定点时开始显示进度条,届时它将更具鼓励作用。

If Integer.Parse(percent) < 25 Then
    'only start showing at 25%
    lblProgress.Visible = False
Else
    lblProgress.Visible = True
End If

关注点

显然,这是一种非常简单的技术,但它救了我一命——我可能会花费很多时间编写一个动态生成图像的用户控件,并且获得的效果仅比这个稍好一些。

历史

  • 首次上传:2003 年 9 月 9 日。
© . All rights reserved.