Css反馈标签为红色或绿色,具体取决于结果

时间:2011-08-28 08:33:53

标签: css

我正在CSSing我的项目,并希望自定义反馈标签的字体颜色。我的项目分为3层(DAL,BLL,普通页面)。在BLL我捕获异常,我想这是我将添加CSS样式表引用的地方。不幸的是,我无法让它工作,这就是它的样子。

BLL

Public Function deleteCustByCustID(ByVal CustID As Integer) As Boolean
    If dataCust.DeleteCust(Cust) Then
        Throw New Exception("The customer was removed.")
        Return True
    Else
        Throw New Exception("The customer wasn't removed. Please try again.")
        Return False
    End If
End Function

ASPX.vb页面

Try
    bllCust.deleteCustByCustID(CustID)
Catch ex As Exception
    lblFeedback.Text = ex.Message
End Try

我将CSS页面存储在CSS文件夹中。我想将字体颜色lime指定为成功,将字体颜色指定为红色。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

另一个选项:如果您为“反馈”区域的标记分配了ID值,并且向该元素添加了runat="server",则可以访问代码中的CssClass属性 - 后面的文件。

举例来说:

<强>标记

<div id="Feedback" runat="server"></div>

<强>代码

Me.Feedback.CssClass="error"

然后你可以在他的回答中使用@rockerest表示的CSS规则。

修改

好的,我再次看了你的代码,我发现了一个大问题:你应该从不使用异常作为控制程序流的方法。这可能是错误#1。

从方法中返回更有意义的结果的一种非常罕见的方法是封装结果对象。这是一个简单的例子:

Public Class Result

    Public IsValid As Boolean
    Public Message As String

    Public Sub New(ByVal isValid As Boolean, ByVal message As String )
        IsValid = isValid
        Message = message
    End Sub

End Class

您可以修改当前函数以返回Result对象而不是Boolean,并根据查询结果分配Result对象的值:

Public Function deleteCustByCustID(ByVal CustID As Integer) As Result
    Dim result as New Result

    If dataCust.DeleteCust(Cust) Then
        result = new Result( true, "The customer was removed." )
    Else
        result = new Result( false, "The customer wasn't removed. Please try again." )
    EndIf

    Return result

End Function

然后,无论代码调用deleteCustByCustID方法,您都可以将Message属性分配给反馈区域的内容以及与CssClass状态匹配的IsValid

有意义吗?

编辑2:

好的,假设你有一个错误的CSS类,“。error”和一个CSS类,呃,不是错误,“。success”。然后,让我们假装下面的片段在事件处理程序或其他内容中:

Dim result As new Result = deleteCustByCustID( 42 )

现在,您有一个Result对象具有IsValid状态值(它将为true或false)和Message字符串值。下一步是将消息应用于反馈元素(我假设您使用ASP.NET Label控件)Text属性,然后基于{{1的值,将正确的类分配给标签的result.IsValid属性:

CssClass

HTH。

答案 1 :(得分:1)

这里最好的答案是在主样式表中定义两个类,如下所示:

.okay{
    color: lime;
}

.error{
    color: red;
}

然后只需在BLL中设置正确的变量:{ok}代表if语句的第一部分,“{1}}部分的”错误“。在页面中,只需将该变量用作消息的类定义的一部分:

else

这应该做你想要的。