从代码后端添加 class 属性

3
我有以下代码:
它在页面加载时有效,但在OnClick事件上无效。
这是因为我的html
似乎在页面呈现后变成了:
我该如何解决这个问题?
3个回答

5

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

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

这真的起作用了,我很惊讶它可以通过 div1.Attributes.Add("class", "displayNone"); 实现。谢谢 :D!! - Anicho
就像我所说的,我认为您遇到了这个问题是因为类属性已经存在,而您是在添加另一个类属性,而不是更新现有的属性。 - James Johnson

1
<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");
}

这将会工作。


0
通常情况下,您应该在Page_PreRender事件中进行此类属性操作/添加:
div1.Attributes.Add("class", "displayNone");

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

在服务器端,像 div1 这样的 ID 对象的使用应始终有效,在代码后台,对象的 ID 不会通过页面生命周期而更改。


我正在服务器端使用更新面板进行部分回发来完成它。 - Anicho

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接