Нельзя добавить серверный HTML-элемент управления из-за кода с помощью StringBuilder
.Используйте класс HtmlButton
, чтобы создать кнопку и поместить ее внутри формы (или другого серверного элемента управления, например Panel
), следуя этому примеру:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
var button = new System.Web.UI.HtmlControls.HtmlButton();
button.Id = "Task1";
button.Attributes["style"] = "float: right; margin-right: 14px;height: 27px;width: 27px;";
button.Attributes["class"] = "btn btn-danger";
button.ServerClick += new EventHandler(btnTaskDelete_Click);
button.InnerHtml = "<i style ="transform: translate(-50%, -50%); width: 12px; height: 6px; display: block;" class="fa fa-trash"></i>";
Form1.Controls.Add(button); // add to form server control named 'Form1'
}
}
Способ StringBuilder
К созданию элементов HTML применяется только в том случае, если все созданные элементы являются литеральными элементами HTML, а не серверным элементом управления (отмечен атрибутом runat="server"
).
Обновление:
Если выЧтобы поместить кнопку в элемент управления div
, просто установите элемент в качестве серверного элемента управления, например <div id="ParentDiv" runat="server"></div>
, и укажите его в качестве цели вставки:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
var button = new System.Web.UI.HtmlControls.HtmlButton();
button.Id = "Task1";
button.Attributes["style"] = "float: right; margin-right: 14px;height: 27px;width: 27px;";
button.Attributes["class"] = "btn btn-danger";
button.ServerClick += new EventHandler(btnTaskDelete_Click);
button.InnerHtml = "<i style ="transform: translate(-50%, -50%); width: 12px; height: 6px; display: block;" class="fa fa-trash"></i>";
ParentDiv.Controls.Add(button); // add to form server control named 'Form1'
}
}