我有以下代码:
div1.Attributes.Add("class", "displayNone");
适用于page load
但不适用于OnClick
事件。
这是因为我的html <div id="div1"></div>
似乎改为:
<div id="div1_ucSomeControl_SoemthingElse"></div>
页面呈现后。
我怎样才能解决这个问题?
答案 0 :(得分:3)
我不认为控件的ID在这种情况下很重要。您可能遇到此问题,因为class
属性已存在。试试这个:
div1.Attributes["class"] = "displayNone";
答案 1 :(得分: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");
}
这将是有效的。
答案 2 :(得分:0)
通常你应该在Page_PreRender事件中执行这种属性manupilation / addition:
div1.Attributes.Add("class", "displayNone");
无论如何当你说它在OnClick事件中不起作用时你仍然意味着服务器端我想;因为在客户端,你不能以这种方式执行该代码。
服务器端,像div1
这样的id对象的使用应始终有效,在代码隐藏对象中,id不会在页面生命周期中改变。