从后面的代码中添加类属性
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 我在服务器端使用更新面板进行部分回发。以上是关于从后面的代码中添加类属性的主要内容,如果未能解决你的问题,请参考以下文章