从后面的代码中添加类属性

Posted

技术标签:

【中文标题】从后面的代码中添加类属性【英文标题】:Adding class attribute from code behind 【发布时间】:2011-11-26 06:16:12 【问题描述】:

我有以下代码:

div1.Attributes.Add("class", "displayNone");

它适用于page load,但不适用于OnClick 事件。

这是因为我的 html <div id="div1"></div> 似乎更改为:

<div id="div1_ucSomeControl_SoemthingElse"></div>

页面渲染后。

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

在这种情况下,我认为控件的 ID 并不重要。您可能会遇到此问题,因为 class 属性已存在。试试这个:

div1.Attributes["class"] = "displayNone";

【讨论】:

这确实有效,我很惊讶这对div1.Attributes.Add("class", "displayNone"); 有效,谢谢:D!! 正如我所说,我相信您遇到了这个问题,因为类属性已经存在,并且您正在添加另一个类属性而不是更新现有的。【参考方案2】:
<div id="div1" runat ="server">
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
</div>

后面的代码:

protected void Button1_Click(object sender, EventArgs e)

    div1.Attributes.Add("class", "displayNone");

这会奏效的。

【讨论】:

【参考方案3】:

通常你应该在 Page_PreRender 事件中做这种属性处理/添加:

div1.Attributes.Add("class", "displayNone");

无论如何,当您说它在 OnClick 事件中不起作用时,我猜您仍然是指服务器端;因为在客户端你不能以这种方式执行该代码。

服务器端,像div1 这样的ID 使用对象应该始终有效,在代码隐藏对象的ID 不会在整个页面生命周期中更改。

【讨论】:

hmmz 我在服务器端使用更新面板进行部分回发。

以上是关于从后面的代码中添加类属性的主要内容,如果未能解决你的问题,请参考以下文章

定义人员类person

第六章类属性2命名规范

如何使用 ASP.NET 从后面的代码中添加一个额外的 css 类?

从后面的代码中将图标类添加到 HTML5 按钮

如何在angular2中使用添加类属性

a标签的伪类