2013-02-25 67 views
24

这是我的ASP:这是不渲染字体真棒的图标按钮的代码,而是显示HTML,因为它是:字体真棒内ASP按钮

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

任何想法,我怎么能解决这个问题呢?

+1

你实际上看过呈现的HTML吗?你能看到'Text'的值放在哪里吗? – freefaller 2013-02-25 09:43:19

+0

是的,它被放置在输入类型文本的值属性中。 – Jack 2013-02-25 09:45:11

+0

正确,因此HTML不会在**属性内被解析** – freefaller 2013-02-25 09:45:37

回答

47

你不能用默认的asp.net按钮,您将需要使用HTML按钮,并给它RUNAT =服务器属性:

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

所以后面使用的代码与此添加:

onserverclick="functionName" 

到该按钮,然后在C#做:

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

所以最终的按钮看起来像:

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

伟大的,但带来更大的问题。我现在如何处理按钮的服务器端单击事件?写手册__doPostBack? – Jack 2013-02-25 09:52:10

+1

@Jack,你可以使用现有的按钮本身。我添加了display:none来隐藏,当用户点击使用javascript的按钮时我点击。检查我的答案 – 2013-02-25 09:56:56

+0

@Jack检查我的更新答案。 – 2013-02-25 11:31:23

22

您可以使用一个LinkBut​​ton

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

他们不支持HTML的文本字段。

+9

我认为我更喜欢在属性之外使用HTML:'搜索' – Homer 2014-11-17 22:34:09

+0

当然,你可以用asp:LinkBut​​ton来做到这一点。但我的问题是关于一个asp:Button。 – Tillito 2015-10-27 14:25:42

+1

@Tillito和标记的答案是不是一个Asp.NET按钮。 – RyBolt 2017-06-14 19:38:15

9

你可以这样做,但不是纯粹用CSS。您只需要将按钮上的Text属性设置为fontawesome字符的unicode值,并将该按钮设置为'fa'css类,以便使用该fontawesome字体。

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

我做了这个辅助库,它提供的所有强类型的图标代码如果把你的曲轴:

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

的NuGet:安装,包装FontAwesome-ASP.NET

来源: https://github.com/kemmis/FontAwesome-ASP.NET

+6

试过这种方法。该按钮只是呈现文本“\ xF135”而不是图标。我不得不使用代码&#xf002;从http://fortawesome.github.io/Font-Awesome/cheatsheet/ – 2015-06-24 19:54:16

+0

@TomasBeblar谢谢你......你的评论拯救了我! – Kamran 2015-08-18 20:22:06

+0

注意,当你使用图标旁边的文本时,它也会是真棒字体 - 看起来很丑。所以这种方法是最好的,当你只有一个图标显示。 – Tillito 2015-08-20 16:56:54

2

您也可以试试这个解决方案 -

<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

获取Nuget!

安装,包装FontAwesome-ASP.NET 使用

FontAwesome图标在Web表单按钮

您可以使用内部asp.net web表单按钮控件FontAwesome图标。只需从FontAwesome.Icons类的静态属性中将数据绑定到您选择的图标即可。然后在您的按钮上调用DataBind()或在父控件或页面上调用DataBind()。其他一个按键,我告诉你,如果你想用asp:

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

1

在别人的答案改变ASP按钮,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>