我正在尝试使用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>
个元素。事实上,它似乎不存在。
答案 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>
,这是一种解决方法。还有其他一些解决方法,但这是最合法的。