2015-02-11 104 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