2009-04-04 6 views
18

Dies ist nur eine einfache Frage: Wie kann ich ein Stück HTML auf einem ASPX-Webformular aus dem Server basierend auf einer serverseitigen Auswertung ausgeschlossen werden?Bedingt einen HTML-Block in ASP.NET-WebForms ausschließen

Ich spreche nicht über eine Kontrolle speziell, da sie tendenziell Visible-Parameter haben, sondern nur etwas Roh-HTML.

Antwort

8
<div id="divYourDiv" runat="server"> 
    your stuff goes here... 
</div> 

//Server side code... 
public void ShowYourDiv(bool visible) 
{ 
    this.divYourDiv.Visible = visible; 
} 
+0

Ich kann nicht auf divYourDiv aus dem Codebehind zugreifen. Gibt es etwas, was ich tun muss, um es zugänglich zu machen? – devios1

+1

stellen Sie sicher, dass Sie runat = "server" eingestellt haben – bytebender

0

Durch/setzen Sie es in einem versteckten div oder Panel (wenn Sie div verwenden, markieren Sie runat = server, beide werden als div gerendert). Dann machen Sie das div/Panel sichtbar oder halten Sie es versteckt, abhängig von Ihrer Bewertung.

0

Sie können Ihr HTML in ein asp-Panel einbinden und das sichtbare Attribut des Panels auf der Serverseite setzen.

Andernfalls ist Html Client-Seite, Sie benötigen Javascript zu manipulieren. Möglicherweise können Sie Javascript in Ihrem serverseitigen Code rendern, aber das ist normalerweise keine gute Idee.

8

Setzen Sie eine PlaceHolder Kontrolle um den Code. Es macht keinen Code für sich selbst (wie zum Beispiel eine Panel), so dass es den HTML-Code nicht beeinträchtigt, wenn er sichtbar ist.

Wenn Sie die Visible-Eigenschaft von PlaceHolder auf false setzen, wird der Code innerhalb der PlaceHolder nicht auf die Seite gerendert.

48

Einige Leute widersprechen der folgenden Methode, aber es ist eine, mit der niemand geantwortet hat und ich denke, dass es als eine Option angezeigt werden sollte. Es kann praktisch sein, wenn es richtig verwendet wird.

<% if (ShowLabel) {%> 
<label>This will not be shown if the ShowLabel property evaluates false</label> 
<%}%> 

Um diese Arbeit machen Sie ein öffentliches oder geschütztes Eigentum auf Ihrer Seite mit dem Namen Showlabel haben würden, die einen Booleschen Wert zurück.

+0

Cool Ich mag das irgendwie. Ich denke, einige Leute mögen es nicht, Code und Markup zu mischen, aber ich bin ein Programmierer im Herzen, also macht das mehr Sinn für mich. :) – devios1

+1

In einigen Fällen ist dies sogar die einzig mögliche Lösung. Zum Beispiel, wenn Sie Tags