2016-09-27 4 views
1

Ich möchte ein benutzerdefiniertes HTML-Steuerelement erstellen.Benutzer-HTML-Steuerelement erstellen

Im ASPX:

<custom:Message runat="server" ID="" 
       Type="" // { "Tip", "Note", "Important", "Warning" , "Caution" } 
       Label="" 
       Text="" 
       Visible="" /> 

Die Html generiert:

<div class="fixedClass customClass"> 
<span class="label">caution</span><hr> 
<blockquote> 
    <p> 
     <strong>Important:</strong> 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ipsum lectus, cursus id rutrum vel 
     , feugiat eget leo. <strong>Cras suscipit urna vel</strong> nibh placerat vestibulum. 
    </p> 
</blockquote> 

Attribut:
Typ für die Custom des Haupt div ist.
Label ist der Text in der <span class="label">.
Text ist der Text im <p> Block.

Antwort

1

Sie können ASP.NET-Benutzersteuerelemente dafür verwenden. Es ist eine sehr häufige und gut verwendete Eigenschaft von ASP.NET Forms. Ich bin überrascht, dass Ihre Forschung es nicht schon aufgedreht hat :-)

Wie auch immer, Sie können ein neues Benutzersteuerelement erstellen, wenn Sie in Visual Studio zu "Add New Item" gehen. Wählen Sie "Web User Control" aus der Liste der Vorlagen. Dadurch wird eine Datei mit der Erweiterung .ascx erstellt. Dies ist Ihr Benutzersteuerelement. Darin können Sie jedes gewünschte HTML-Markup, JavaScript und andere .NET-Steuerelemente (und sogar andere Benutzersteuerelemente) hinzufügen. Es hat auch Code-Behind, die auf Ereignisse etc. auf die gleiche Weise wie eine ganze Seite reagieren kann.

Sobald das erstellt und in Ihrem Projekt enthalten ist, können Sie in Ihren aspx Seiten verwenden. Dies besteht aus zwei Teilen: Zuerst fügen Sie eine Direktive hinzu, um das Steuerelement zu registrieren, und dann können Sie ein Tag hinzufügen, um das Steuerelement auf die gleiche Weise wie die integrierten Steuerelemente zu verwenden.

<%@ Register TagPrefix="uc" TagName="myControl" Src="~/Controls/myControl.ascx" %> 
... 
<uc:myControl id="ctrl1" runat="server"/> 

Wenn Sie auf der Steuer Attribute (zB „Label“ und „Text“, wie Sie erwähnten, definiert öffentliche Eigenschaften in dem Code-Behind der Steuerung:

public string Label { get; set; } 
public string Text { get; set; } 

Dann offensichtlich irgendwo im Code hinter können Sie diese Werte verwenden, um die UI oder was auch immer zu füllen

sie im Markup zu verwenden:.

<uc:myControl id="ctrl1" runat="server" Label="TestLabel" Text="TestText" /> 

Alternativ können Sie sie aus dem Code-Behind der Seite, auf der Sie das Steuerelement verwenden, genauso auffüllen wie jede öffentliche Eigenschaft eines Objekts.

Weitere Informationen finden Sie hier: https://msdn.microsoft.com/en-us/library/wt3k2fyw.aspx (wie Benutzersteuerungen erstellen) und https://msdn.microsoft.com/en-us/library/sbz9etab.aspx (wie sie in Ihrer Seite einbinden)

+0

Ich suchen haben aber in der falschen Richtung. Suche nach 'benutzerdefiniertem Steuerelement' anstelle von 'Benutzerkontrolle'. Danke für die schnelle Antwort. Ich bin gerade im RTFM. Du wirst deinen wohlverdienten grünen Tick haben, sobald ich die Kontrolle beendet habe. –

+0

Darf ich meine Frage mit meiner Version des Benutzersteuerelements aktualisieren? Weil ich nicht weiß warum, aber ich finde es nicht "effizient" –

+0

in welchem ​​Sinne effizient? Es ist langsam auszuführen, oder Sie glauben nicht, dass es Ihre Code-Struktur hilft? – ADyson