2015-02-11 3 views
0

Я работаю над проектом, где я хочу, чтобы изменить укладку в <div> с помощью C# в asp.net мой 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 { ...} 

, в которой уль всегда показывает пустой .. пожалуйста, помогите

+0

В каких 'asp.net жизненный цикл phase' вы звоните код? И является ли частью кода 'UserControl'? –

+0

'FindControl()' не является рекурсивным, поэтому 'this' должен быть непосредственным родителем' xyz'. Обратите внимание, что вы должны иметь доступ к 'xyz' напрямую (это должно быть защищенное поле в генерируемой конструктором части класса). –

+0

no i m не использует никакой пользовательский контроль. Я пишу этот код при нажатии кнопки –

ответ

1

Вы можете использовать либо xyz.Attributes.Add("style", "display: block") или xyz.Attributes["style"] = "display: block".

FYI: Вам не нужно использовать FindControl если хуг не находится внутри управления данными, как Repeater.

<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

Спасибо, он действительно помогает –

+0

Если это ответит на ваш вопрос, отметьте его как *** Ответ ***. Это поможет другим, кто ищет тот же ответ. – Win

0
<asp:Panel ID="foo" runat="server"></asp:Panel>  

Затем в коде позади ....

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

Панель отображает тег div в клиентский браузер. OP ничего не получает, заменив div на Panel, если вы не используете некоторые функции Panel, такие как * DefaultButton *. – Win

Смежные вопросы