2013-02-25 8 views
24

Das ist mein asp: Button-Code, der nicht font genial das Symbol rendert, sondern zeigt den HTML, wie es ist:Font ehrfürchtige innerhalb asp Taste

<asp:Button runat="server" ID="btnRun" Text="<i class='icon-camera-retro'></i> Search" ValidationGroup="edt" OnClick="btnRun_Click" CssClass="greenButton"/> 

Jede Idee, wie kann ich dieses Problem lösen?

+1

Haben Sie tatsächlich das gerenderte HTML betrachtet? Kannst du sehen, wo der Wert von 'Text' liegt? – freefaller

+0

Ja, es wird innerhalb des Wertattributs des Eingabetyptexts platziert. – Jack

+0

Korrekt, und deshalb wird HTML nicht analysiert ** innerhalb ** dieses Attribut – freefaller

Antwort

47

Sie können mit der Standard-asp.net-Taste nicht benötigen Sie eine HTML-Taste verwenden und es runat = server Attribut geben:

<button runat="server" id="btnRun" class="btn btn-mini" title="Search"> 
    <i class="icon-camera-retro"></i> Search 
</button> 

So hinter verwenden Code mit diesem Sie hinzufügen:

onserverclick="functionName" 

Um die Schaltfläche, dann in Ihrem C# tun:

protected void functionName(object sender, EventArgs e) 
{ 
    Response.Write("Hello World!!!"); 
} 

So letzte Taste wie folgt aussieht:

<button runat="server" id="btnRun" onserverclick="functionName" class="btn btn-mini" title="Search"> 
    <i class="icon-camera-retro"></i> Search 
</button> 
+0

Großartig, aber das bringt größere Probleme mit sich. Wie gehe ich jetzt mit dem Server-Seitenklick-Ereignis der Schaltfläche um? Handbuch schreiben __doPostBack? – Jack

+1

@Jack, Sie können mit vorhandenen Button selbst tun. Ich habe Anzeige hinzugefügt: keine zu verbergen und ich klicke, wenn der Benutzer die Schaltfläche mit Javascript klickt. Überprüfen Sie meine Antwort –

+0

@Jack überprüfen Sie meine aktualisierte Antwort. –

22

können Sie einen Linkbutton verwenden

<asp:LinkButton runat="server" ID="btnRun" Text="<i class='icon-camera-retro'></i> Search" 
       ValidationGroup="edt" OnClick="btnRun_Click" CssClass="greenButton" /> 

Sie tun html in das Textfeld unterstützen.

+9

Ich denke, ich bevorzuge den HTML außerhalb der Eigenschaften: ' Suche' – Homer

+0

Natürlich können Sie das mit einem asp: LinkButton tun. Aber meine Frage ist eine Asp: Button. – Tillito

+1

@Tillito und die markierte Antwort ist _not_ eine Asp.NET-Schaltfläche. – RyBolt

9

Sie können es tun, nicht nur mit CSS. Sie müssen nur die Eigenschaft Text auf der Schaltfläche auf den Unicode-Wert des Fontawesome-Zeichens setzen und der Schaltfläche die Klasse "fa" css geben, damit sie die fontawesome-Schriftart übernimmt.

<asp:Button ID="Button1" runat="server" 
    Text="\xF135" CssClass="fa" /> 

Ich habe diese Helfer-Bibliothek, die alle Symbol-Codes liefert stark typisierte wenn das Ihre Kurbel dreht:

<asp:Button ID="Button1" runat="server" 
    Text="<%# FontAwesome.Icons.Rocket %>" CssClass="fa" /> 

Nuget: Install-Package FontAwesome-ASP.NET

Quelle: https://github.com/kemmis/FontAwesome-ASP.NET

+6

Versucht diesen Ansatz. Die Schaltfläche hat nur den Text "\ xF135" anstelle des Symbols gerendert. Ich musste den Code & # xf002; von http://fortawesome.github.io/Font-Awesome/cheatsheet/ –

+0

@TomasBeblar Danke Mann ... Ihr Kommentar hat mich gerettet! – Kamran

+0

Beachten Sie, dass wenn Sie auch Text neben dem Symbol verwenden, es auch von der tollen Schriftart sein wird - die hässlich aussieht. Dieser Ansatz ist am besten, wenn Sie nur ein Symbol zum Anzeigen haben. – Tillito

2

Sie auch diese Lösung versuchen können -

<span style="position:relative;"> 
    <i class="fa fa-hand-o-down"></i> 
    <asp:Button ID="btnCatMoveDown" CssClass="movedown" CausesValidation="false" Text="" CommandName="categorymovedown" CommandArgument='<%#Eval("SomeId")%>' runat="server"></asp:Button> 
</span> 

<style> 
    .movedown { 
     position:absolute; 
     opacity:0; 
     top:0; 
     left:0; 
     width:100%; 
     height:100%; 
    } 
</style> 
0

Holen Sie es auf Nuget!

Install-Package FontAwesome-ASP.NET Verwendung

FontAwesome Icons In Webforms Buttons

können Sie FontAwesome Symbole innerhalb asp.net Webforms-Button-Steuerelemente verwenden. Einfach aus den statischen Eigenschaften der FontAwesome.Icons-Klasse auf das Symbol Ihrer Wahl databinden. Rufen Sie dann DataBind() auf Ihrer Schaltfläche oder DataBind() auf Ihrem übergeordneten Steuerelement oder Ihrer übergeordneten Seite auf.

<asp:Button ID="Button1" runat="server" 
 
    Text="<%# FontAwesome.Icons.Rocket %>" CssClass="fa" />

1

In den anderen Antworten ändert asp: Button durch andere, das ich dir zeigen, wenn Sie asp wollen verwenden: Taste, EASY :)

/*CSS*/ 
 
/*Colors depends what btn you use, in this case i´m using btn-default*/ 
 

 
.btn_asp_icon{ 
 
    border: 0; 
 
    background-color: #fff; 
 
} 
 

 
.btn:hover > .btn_asp_icon{ 
 
    background-color: #e6e6e6; 
 
}
<!-- HTML --> 
 

 
<div class="btn btn-default"> 
 

 
<i class="fa fa-search fa-fw fa-lg" aria-hidden="true"></i> 
 
<asp:Button cssClass="btn_asp_icon" runat="server" text="Consultar"/> 
 

 
</div>

Verwandte Themen