为什么在代码隐藏中将显示设置为 none 不会将其添加到 HTML?

Why does setting display to none in the code-behind not add it to the HTML?

我正在尝试在代码隐藏中将几个 HtmlTableRow 的显示样式设置为 "display:none",如下所示:

foapalrow3 = new HtmlTableRow();
foapalrow3.ID = "foapalrow3";
foapalrow3.Attributes["display"] = "none";

...但它不起作用 - "View Source" 不包含 foapalrow3 或 -4 的 "display:none"。为什么不,我怎样才能强制它按预期工作?

要么是我的唠叨,要么是这堵墙最终会因此而倒塌;正如这个 所示,我一直像后卫一样猛击砖墙。

display 不是属性的名称。您必须修改 style 属性。

foapalrow3.Attributes["style"] = "display:none";

display 不是 HTML 属性,因此被丢弃。如果要添加 CSS 样式,请使用 Style 而不是 Attributes,如下所示:

foapalrow3.Style["display"] = "none";
foapalrow4.Style.Add("display", "none"); // alternate syntax

正如其他答案所述,理论上您可以使用 Attributes["style"] 完成同样的事情,但我个人过去曾遇到过问题,Style 属性 是首选(在我看来,更好的)选项。