Vorsicht mit Visible = false

posted on Thursday, March 11, 2010 9:41 PM | in: .NET ASP.NET

Eigentlich altbekannt, trotzdem bin ich gerade mal wieder darauf hereingefallen und schreibe des deshalb hier auf:

Ich wollte in einer ASP.NET Webforms Anwendung ein Servercontrol serverseitig über

meinControl.Visible = false;

ausblenden, um es nach einer Nutzeraktion auf dem Client wieder einzublenden:

$(Id$="MeinControl").show();

Leider funktioniert das allerdings nicht, da ein serverseitiges Visible = false dafür sorgte, dass das Control erst garnicht gerendert wurde und somit auf dem Client nicht verfügbar war.

Die simple Lösung im Codebehind:

meinControl.Style.Add(HtmlTextWriterStyle.Display, "none");

Dann klappts auch mit dem Einblenden ;-)

Tags:

Was andere gesagt haben

  • Gravatar Jan

    10/29/2011 11:11 PM

    # Re: Vorsicht mit Visible = false

    Hallo,

    noch einen Tick besser wäre es, wenn du dem Control eine entsprechende CSS Klasse zuordnen würdest. Dann hast du im gerenderten HTML keinen hässlichen Inline-Style mehr. Bei ASP.NET 4.0 wird dazu die CSS Klasse aspNetHidden verwendet.

    Viele Grüße,
    Jan
  • Gravatar André Krämer

    10/29/2011 11:11 PM

    # Re: Vorsicht mit Visible = false

    Da hast du recht! Eine CSS Klasse .hidden wäre natürlich besser gewesen ... Ich mache gleich mal das Visual Studio auf ;-)

    Dankeschön!

Was hast du zu sagen?

Title *
Name *
Email
Url
Comment *  
Please add 7 and 1 and type the answer here: