Css根据结果将反馈标签设置为红色或绿色
我正在完成我的项目,并希望自定义反馈标签的字体颜色。我的项目是建立在3层(DAL,BLL,正常页面)。在BLL中,我捕获异常,我想这就是我添加CSS样式表引用的地方。不幸的是,我不能让它工作,这就是它看起来的样子 BLLCss根据结果将反馈标签设置为红色或绿色,css,Css,我正在完成我的项目,并希望自定义反馈标签的字体颜色。我的项目是建立在3层(DAL,BLL,正常页面)。在BLL中,我捕获异常,我想这就是我添加CSS样式表引用的地方。不幸的是,我不能让它工作,这就是它看起来的样子 BLL Public Function deleteCustByCustID(ByVal CustID As Integer) As Boolean If dataCust.DeleteCust(Cust) Then Throw New Exception("T
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
Me.Feedback.CssClass="error"
我的CSS页面存储在CSS文件夹中。我想将字体颜色石灰指定为成功,将字体颜色红色指定为失败
非常感谢您的帮助 这里最好的答案是在主样式表中定义两个类,如下所示:
.okay{
color: lime;
}
.error{
color: red;
}
然后只需在BLL中设置正确的变量:if
语句的第一部分为“ok”,而else
语句的第一部分为“error”。在页面中,只需将该变量用作消息的类定义的一部分:
Try
bllCust.deleteCustByCustID(CustID)
Catch ex As Exception
lblFeedback.Text = ex.Message
lblFeedback.cssClass = lblFeedback.cssClass + " " + [THE VARIABLE WORD HERE]
End Try
这应该满足您的需要。这里最好的答案是在主样式表中定义两个类,如下所示:
.okay{
color: lime;
}
.error{
color: red;
}
然后只需在BLL中设置正确的变量:if
语句的第一部分为“ok”,而else
语句的第一部分为“error”。在页面中,只需将该变量用作消息的类定义的一部分:
Try
bllCust.deleteCustByCustID(CustID)
Catch ex As Exception
lblFeedback.Text = ex.Message
lblFeedback.cssClass = lblFeedback.cssClass + " " + [THE VARIABLE WORD HERE]
End Try
这应该可以满足您的需要。另一个选项:如果您为“反馈”区域的标记指定了一个ID值,并且向该元素添加了一个
runat=“server”
,则可以访问代码隐藏文件中的CssClass
属性
举例来说:
标记
<div id="Feedback" runat="server"></div>
然后您可以在他的答案中使用@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
您可以修改当前函数以返回结果
对象,而不是布尔值
,并根据查询结果指定结果
对象的值:
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
方法的代码中,您将消息
属性分配给反馈区域的内容和与IsValid
状态匹配的CssClass
有道理吗
编辑2:
好的,假设你有一个错误的CSS类,“.error”和一个错误的CSS类,“.success”。然后,让我们假设以下代码段位于事件处理程序或类似的东西中:
Dim result As new Result = deleteCustByCustID( 42 )
现在您有了一个Result
对象,该对象有一个IsValid
状态值(它将是true或false)和一个消息
字符串值。下一步是将消息应用于反馈元素的Text
属性(我在这里假设您使用ASP.NETLabel
控件),然后根据result.IsValid
的值为标签的CssClass
属性指定正确的类:
myFeedbackLabel.Text = result.Message
If result.IsValid Then
myFeedbackLabel.CssClass = "success"
Else
myFeedbackLabel.CssClass = "error"
EndIf
HTH.另一个选项:如果为“反馈”区域的标记指定了ID值,并且向该元素添加了
runat=“server”
,则可以访问代码隐藏文件中的CssClass
属性
举例来说:
标记
<div id="Feedback" runat="server"></div>
然后您可以在他的答案中使用@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
您可以修改当前函数以返回结果
对象,而不是布尔值
,并根据查询结果指定结果
对象的值:
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
方法的代码中,您将消息
属性分配给反馈区域的内容和与IsValid
状态匹配的CssClass
有道理吗
编辑2:
好的,假设你有一个错误的CSS类,“.error”和一个错误的CSS类,“.success”。然后,让我们假设以下代码段位于事件处理程序或类似的东西中:
Dim result As new Result = deleteCustByCustID( 42 )
现在您有了一个Result
对象,该对象有一个IsValid
状态值(它将是true或false)和一个消息
字符串值。下一步是将消息应用于反馈元素的Text
属性(我在这里假设您使用ASP.NETLabel
控件),然后根据result.IsValid
的值为标签的CssClass
属性指定正确的类:
myFeedbackLabel.Text = result.Message
If result.IsValid Then
myFeedbackLabel.CssClass = "success"
Else
myFeedbackLabel.CssClass = "error"
EndIf
HTH.有关于如何返回变量的想法吗?有关于如何返回变量的想法吗?这样我就可以执行lblFeedback.CssClass=lblFeedback.CssClass+“”+结果了,应该可以了?但是我在哪里分配要使用的CSS类?嗯,没有。使用if/else或三元语句来分配类,基于result.IsValid值。我想我会更新的……我试过了,但它在类中给出了一个错误。无法识别有效。请确保不再尝试在CSS中匹配业务逻辑(或任何逻辑)。CSS改变了标记在浏览器上呈现的方式,它没有“何时”的知识。这样我就可以执行lblFeedback.CssClass=lblFeedback.CssClass+“”+结果,这应该可以工作了?但是我应该在哪里分配要使用的CSS类呢?嗯,不。使用if/else或三元语句