2016-04-08 6 views
1

steuert Wenn ich einen gewissen Wert auf eine Javacript festlegen müssen, oder einem anderen Teil des Codes, ich dies in der Regel verwenden:ASP.NET dynamisch HTML generieren mit Server

<script> 
    <%# SomeFunction() %> 
</script> 

Und das funktioniert auch für HTML in das Dokument Körper, wie ...

<somehtmltag property="<%# SomeFunction2() %>"> 

Und in den Code hinter ich die Funktion zu erstellen, die eine Zeichenfolge, mit allen notwendigen Code zurückgibt.

Wenn ich fügen Sie einige Parameter auf eine Benutzersteuerung wie:

<ts:PeopleCard ID="us" runat="server" Visible="<%# IsVisivle() %>" /> 

Es funktioniert auch, aber ich versuche, die gesamte Benutzersteuerung zu schaffen, es funktioniert nicht.

<%# AddUserControl() %> 

Function AddUserControl() as String 
    Return "<ts:PeopleCard ID=""us"" runat=""server"" Visible=""true"" />" 
End Function 

Ich verstehe, dass dies nicht funktioniert, weil dieser Code vom Server verarbeitet werden muss, um in den tatsächlichen Code konvertiert werden.

Die endgültige HTML, es zeigt:

<ts:PeopleCard ID="us" runat="server" Visible="true" /> 

, wenn es nicht soll, ist es die verarbeitete HTML \ CSS vom Server zeigen.

Also meine Frage ist, ist es möglich, eine Kontrolle auf diese Weise zu erstellen? Ist es möglich, ASP.NET zu zwingen, die Seite "neu zu verarbeiten", nachdem ich seinen Inhalt im Code geändert habe?

Ich verstehe, dass es mehrere andere Möglichkeiten gibt, es zu tun. Einschließlich, Erstellen des Benutzersteuerelements in Conde hinter.

Aber ich muß wissen, wenn möglich, auf diese Weise zu tun ...

+3

Dies ist nicht möglich. – giammin

Antwort

0

Normalerweise haben Sie einen übergeordneten Tag, das Runat Server ist, und Sie können Ihr eigenes Objekt, um es dann hinzuzufügen.

Dim newTag as New PeopleCard 
newTag.Visible = true 
pnl.Controls.Add(newTag) 

Eine andere Option, die ich getan habe, ist die Vergangenheit ein RenderMethod zu einem Steuerelement hinzuzufügen ist. Jedes Steuerelement verfügt über eine SetRenderMethodDelegate-Funktion, und Sie können direkt in den HtmlTextWriter schreiben. Dadurch wird kein Objekt für die Steuerelemente erstellt, die Sie selbst erstellen.