C# 从代码隐藏变量更改css类-如何避免?
我需要根据代码隐藏中设置的某些count属性更改div的背景。我可以让它工作如下。但我想知道这是否是一个好的做法。如果我需要更改计数逻辑,我必须更新代码vs html。我想Jquery不能做到这一点,除非我在页面上有一个带有count的隐藏变量。这比在html中编写If循环逻辑好吗 htmlC# 从代码隐藏变量更改css类-如何避免?,c#,asp.net,html,css,C#,Asp.net,Html,Css,我需要根据代码隐藏中设置的某些count属性更改div的背景。我可以让它工作如下。但我想知道这是否是一个好的做法。如果我需要更改计数逻辑,我必须更新代码vs html。我想Jquery不能做到这一点,除非我在页面上有一个带有count的隐藏变量。这比在html中编写If循环逻辑好吗 html <div class="show <%=CSSClass %>"> value </div> 类名是一种非常有效的方法,在服务器上执行此操作的技术也是如此。类名是一种
<div class="show <%=CSSClass %>"> value </div>
类名是一种非常有效的方法,在服务器上执行此操作的技术也是如此。类名是一种非常有效的方法,在服务器上执行此操作的技术也是如此。这是一种很好的做法。我会坚持下去。如果希望使用jQuery执行此操作,可以向客户端公开
count
服务器端属性,并在客户端上执行相同的逻辑。但是请注意,由于这是在客户端完成的,因此在页面呈现和jQuery代码分配了正确的类名之后可能会有一些延迟,因此当实际的CSS类应用于客户端的DOM元素时,您可能会看到闪烁。这是一个很好的做法。我会坚持下去。如果希望使用jQuery执行此操作,可以向客户端公开count
服务器端属性,并在客户端上执行相同的逻辑。但是请注意,由于这是在客户机上完成的,因此在呈现页面并且jQuery代码分配了正确的类名之后,可能会有一些延迟,因此,当实际的CSS类应用于客户端的DOM元素时,您可能会看到闪烁。如果您试图使用MVC方法,则不需要这样做
MVC中的要点是确保在您的视图中没有业务逻辑,而且由于这不是那种类型的逻辑,它似乎很复杂,我会在页面中添加if
当然,除非你打算大量使用这种方法,否则这可能不是一个坏主意。如果你试图使用MVC方法,就没有必要这样做 MVC中的要点是确保在您的视图中没有业务逻辑,而且由于这不是那种类型的逻辑,它似乎很复杂,我会在页面中添加
if
除非你想经常使用这个,否则这可能不是个坏主意。旁白:这是一个结构奇怪的
if-else if
。您真的打算将“dim”
映射到count==1 | | count<0
?如果count>1,则返回bright;如果计数=0,则返回正常值;否则(如果计数小于1),返回dim。我之前没有==,我更新了它。如果计数==1怎么办?您当前的代码返回“dim”
。是的,我同意。这只是为了说明目的。在这种情况下,第一个条件应该是if(count>=1)。您真的打算将“dim”
映射到count==1 | | count<0
?如果count>1,则返回bright;如果计数=0,则返回正常值;否则(如果计数小于1),返回dim。我之前没有==,我更新了它。如果计数==1怎么办?您当前的代码返回“dim”
。是的,我同意。这只是为了说明目的。在这种情况下,第一个条件应该是if(count>=1)。但是这样,如果必须更改count条件或css类名,我需要做一个发布。这是可以避免的吗?@Alex J,你要发布是什么意思?我不明白你的问题。您只需在javascript中输出count变量:var count=代码>。因此,如果您更改服务器上的计数值,javascript计数变量显然也会更新。对不起,这不是我的意思。我的意思是,如果计算css类的逻辑/条件发生变化,我将需要更新代码,而不是更新aspx html。如果必须将其嵌入aspx中以进行动态更改,则可以使用?
条件运算符显著缩短它:
,但这样,如果必须更改计数条件或css类名,我需要做一个发布。这是可以避免的吗?@Alex J,你要发布是什么意思?我不明白你的问题。您只需在javascript中输出count变量:var count=代码>。因此,如果您更改服务器上的计数值,javascript计数变量显然也会更新。对不起,这不是我的意思。我的意思是,如果计算css类的逻辑/条件发生变化,我将需要更新代码,而不是更新aspx html。如果必须将其嵌入aspx中以进行动态更改,则可以使用?
条件运算符显著缩短它:
public string CSSClass
{
get
{
if (count > 1) return "bright";
else if (count == 0)
return "normal";
return "dim";
}
}