André Krämers Blog

Lösungen für Ihre Probleme

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 ;-)

Es gibt 2 Kommentare

Comment by Jan
Von | 29.10.2011 21:11
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
Comment by André Krämer
Von | 29.10.2011 21:11
Da hast du recht! Eine CSS Klasse .hidden wäre natürlich besser gewesen ... Ich mache gleich mal das Visual Studio auf ;-)Dankeschön!