2015-02-11 102 views
0

我工作的一个项目的风格,我想使用C#在asp.net改变<div>的造型 我的HTML代码如何更改HTML标签

<div id="xyz" style="display: none" runat="server"> Please Register YourSelf First</div> 

和我的C#代码

if (q == 0) 
     { 

      HtmlGenericControl ul = (HtmlGenericControl)(this.FindControl("xyz")); 
      ul.Style["display"] = "block"; 
     } else { ...} 

其中UL是始终显示为空.. 请帮助

+0

在哪'asp.net生命周期phase'你打的代码?并且是'UserControl'的代码部分? – 2015-02-11 15:47:41

+0

'FindControl()'不是递归的,所以'this'必须是'xyz'的直接父对象。请注意,您应该能够直接访问'xyz'(它应该是设计器生成的类中的受保护字段)。 – 2015-02-11 15:48:37

+0

不,我不使用任何userControl。我正在编写此代码按钮点击 – 2015-02-11 15:49:27

回答

1

您可以使用xyz.Attributes.Add("style", "display: block")xyz.Attributes["style"] = "display: block"

FYI:你并不需要使用的FindControl除非XYZ位于内部的数据控制像直放站。

<div id="xyz" style="display: none" runat="server"> 
    Please Register YourSelf First 
</div> 
<asp:Button runat="server" ID="SubmitButton" 
    OnClick="SubmitButton_Click" Text="Submit" /> 

protected void SubmitButton_Click(object sender, EventArgs e) 
{ 
    xyz.Attributes.Add("style", "display: block"); 
} 
+0

谢谢,它真的帮助 – 2015-02-11 15:58:48

+0

如果这回答你的问题,请标记为***答案***。它会帮助其他人寻找相同的答案。 – Win 2015-02-11 16:13:02

0
<asp:Panel ID="foo" runat="server"></asp:Panel>  
在后面的代码

然后....

foo.Attributes.Add("style", "border: 1px solid"); 
+0

面板将div标签呈现给客户端浏览器。除非您使用面板的某些功能,例如* DefaultButton *,否则OP不会通过将面板替换为div来获得任何收益。 – Win 2015-02-11 16:19:34