Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css根据结果将反馈标签设置为红色或绿色_Css - Fatal编程技术网

Css根据结果将反馈标签设置为红色或绿色

Css根据结果将反馈标签设置为红色或绿色,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

我正在完成我的项目,并希望自定义反馈标签的字体颜色。我的项目是建立在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
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.NET
Label
控件),然后根据
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.NET
Label
控件),然后根据
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或三元语句