我正在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指定为成功,将字体颜色指定为红色。
非常感谢任何帮助!
答案 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
这应该做你想要的。