ASP.Net - 标签的条件格式 - VB

时间:2013-06-27 10:52:24

标签: asp.net vb.net

我在表单(lblIRafr)上有一个标签,我将其赋值如下:

lblIRafr.Text = irAverageFailureRate & "%"

我使用以下代码生成要分配给此标签的值:

Dim irAverageFailureRate As String = (CDbl(irTotalFailureRate / 2).ToString("0.00"))

然后我格式化标签,这样如果irAverageFailureRate高于3,它将使文本变为粗体和红色,否则文本将为粗体和绿色。我这样做如下:

If irAverageFailureRate > "3.00" Then
        Dim l As Label = lblIRafr
        l.Font.Bold = True
        l.ForeColor = Drawing.Color.Red
    Else
        Dim l As Label = lblIRafr
        l.Font.Bold = True
        l.ForeColor = Drawing.Color.Green
    End If

这在0到9.99之间的数字上运行正常但是当irAverageFailureRate达到10.0时,标签格式为粗体和绿色而不是红色,我不完全确定原因。

感激不尽的任何帮助。感谢

1 个答案:

答案 0 :(得分:2)

因为您正在将字符串与字符串进行比较。

“10.00”小于“3.00”,因为第一个字符“1”小于“3”

“2.00”小于“3.00”,因为第一个字符“2”小于“3”

“9.99”大于“3.00”,因为第一个字符“9”大于“3”

在比较之前将irAverageFailureRate转换为双倍:

If Double.Parse(irAverageFailureRate) > 3.0 then
    ' red
Else
    ' green
End If