ASP.NET按钮与Bootstrap Glyphicon

时间:2016-05-19 20:32:04

标签: c# css asp.net twitter-bootstrap twitter-bootstrap-3

我正在尝试使用glyphicons作为ASP Button的图标。

我知道您可以通过为<i>元素提供正确的glyphicon CSS来轻松完成此操作,然后将其置于所需按钮下。

但是,我想从C#端做这不是HTML。我该怎么做?

我尝试了以下内容,但无济于事:

HtmlGenericControl i1 = new HtmlGenericControl("i");
i1.Attributes["class"] = "glyphicon glyphicon-backward";
i1.Attributes["aria-hidden"] = "true";

Button btnFirst = new Button();
btnFirst.ID = "btnFirst";
btnFirst.CommandName = "FirstPage";
btnFirst.CssClass = "btn btn-default pageButton";
btnFirst.Click += new EventHandler(btnFirst_Click);
btnFirst.Controls.Add(i1);
container.Controls.Add(btnFirst);

如果我按上述方式运行,则显示按钮,但没有图标。 在HTML中,按钮下方没有嵌套<i>个元素。事实上,它似乎不存在。

1 个答案:

答案 0 :(得分:3)

基本上,您不能将<asp:Button>与glyphicons一起使用,因为<asp:Button>会变成不支持任何子元素的<input type='button'>

两种可能的解决方案:

使用<asp:LinkButton>代替<asp:Button>

<asp:LinkButton runat="server" ID="lbFoo" OnClick="lbFoo_Click" CssClass="btn btn-default">
    <i class="glyphicon glyphicon-backward" aria-hidden="true"></i>Back
</asp:LinkButton>

这是常见的解决方案。

或使用<button>提交隐藏的<asp:Button>

<button type="button" class="btn btn-default" onclick="<%=btnHidden.ClientID %>.click()">
    <i class="glyphicon glyphicon-backward" aria-hidden="true"></i>
    Click
</button>

<asp:Button runat="server" style="display:none;" ID="btnHidden"
    OnClick="btnHidden_Click"></asp:Button>

如果您坚持使用<asp:Button>而不是<asp:LinkButton>,这是一种解决方法。还有其他一些解决方法,但这是最合法的。