动态创建HTML按钮控件并在其中嵌套i标记

本文关键字:在其中 嵌套 标记 控件 创建 HTML 按钮 动态 | 更新日期: 2023-09-27 18:23:53

我在c#中创建了一个简单的HTML按钮作为

Button btn = new Button();
btn.ID="myID";
btn.Click+=new EventHandler(someFunc);

正如预期的那样工作得非常好。但我所需要做的就是在其中插入一个图标。类似于这样的事情。

<button class="mdl-button mdl-js-button mdl-button--fab mdl-button--colored">
  <i class="material-icons">add</i>
</button>

有人能指导一下如何把这个插入按钮吗?

动态创建HTML按钮控件并在其中嵌套i标记

您必须使用HtmlButton并具有服务器点击事件,而不是使用Button,因为WebControls按钮将呈现为类似<input type的控件,因此它内部不能有其他控件。

还有someFunc应该是事件而不是字符串

以下是可以使用的完整代码

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        System.Web.UI.HtmlControls.HtmlButton btn = new System.Web.UI.HtmlControls.HtmlButton();
        btn.ID = "myID";
        btn.Attributes["class"] = "mdl-button mdl-js-button mdl-button--fab mdl-button--colored";
        btn.ServerClick += new EventHandler(someFunc);
        btn.InnerHtml = "<i class='"material-icons'">add</i>";
        // you can add your button to some other parent control or to form
        myCustomPanel.Controls.Add(btn);
    }
}
protected void someFunc(object sender, EventArgs e)
{
    // your code
}

请确保在表单中添加您的按钮或在表单内添加其他控件。

您可以创建一个HtmlGenericControl对象,并添加所有相关属性,如InnerTextclass等,最后将此对象添加到按钮的控件集合中。这将为您提供预期的输出:-

HtmlGenericControl iTag = new HtmlGenericControl("i");
iTag.InnerText = "Add";
iTag.Attributes["class"] = "material-icons";
btn.Controls.Add(iTag);