在后面的代码中更改 css 类

Posted

技术标签:

【中文标题】在后面的代码中更改 css 类【英文标题】:change css class in code behind 【发布时间】:2016-06-05 06:26:45 【问题描述】:

我正在尝试做一些简单的事情(在 c# 中),但它不起作用。

我想要实现的目标: 通过更改 css 类来更改标签的文本颜色。

到目前为止我得到了什么:

CSS:

.feedback 
    font-family: inherit;
    font-weight: normal;
    font-style: italic;
    font-size: 10pt;

.feedback.success 
    color: #71d398;

.feedback.fail 
  color: #75b9e6;

C#:

(...)
FeedbackLabel.Attributes.Add("Class", ".feedback.fail"); //one way I tried
FeedbackLabel.Text = "Error";
(...)
FeedbackLabel.CssClass = ".feedback.success"; //the other way I tried
FeedbackLabel.Text = "Done";
(...)

我的问题: 它获取类,但对字体没有任何影响。 我什至尝试在标签上将 .feedback.fail 设置为默认值,并且仅在成功时更改它。结果是启动后 .feedback.fail 处于活动状态(包括所有设置),但是当它应该更改为 .feedback.success 时,它只是重置为应用程序默认值。 (但在调试中,我看到它确实得到了正确的类..)

您知道上面的代码有什么干扰或有什么问题吗? 提前致谢!

【问题讨论】:

您在页面生命周期的哪个位置运行代码? 感谢大家!现在可以了! 【参考方案1】:

试试这个FeedbackLabel.Attributes.Add("Class", "feedback fail") .

您不应该使用. 来指定元素的类属性值

【讨论】:

感谢帕万!这几乎可以工作!只是颜色不会改变......但多亏了你,我尝试了 FeedbackLabel.CssClass = "feedback fail"; (也没有点),这很完美。【参考方案2】:

很遗憾,这里没有对我有用的答案,所以我决定为这个问题提供自己的答案:

FeedbackLabel.Style["border"] = "1px solid black";

这将是一个关于如何更改单个样式元素的示例,但仍不确定如何更改类。

【讨论】:

【参考方案3】:

试试这个

FeedbackLabel.Attributes.Remove("class");

if(succcess)
  FeedbackLabel.Attributes.Add("class","feedback success");
else
  FeedbackLabel.Attributes.Add("class","feedback fail");

【讨论】:

以上是关于在后面的代码中更改 css 类的主要内容,如果未能解决你的问题,请参考以下文章

在后面的代码中更改 Canvas.Left 属性?

如何在后面的代码中更改 VirtualizingStackPanel 方向?

div 标题的客户端更改未反映在后面的 C# 代码中

在后面的代码中使用资源图像

在后面的代码中动态绑定 DataGridComboBoxColumn

为啥表格单元格宽度不随 CSS 改变?