我创建的用户控件包含一个和包装在html按钮中的按钮,以获取带有文本和图标的按钮。我希望能够像平常一样使用它们,所以我希望能够订阅apx标记中的click事件。到目前为止,Visual Studio确实为我创造了一个空白-但没有必要的参数(对象发送者,EventArgs e)。
您可以在下面找到代码片段
IconButton.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="IconButton.ascx.cs" Inherits="Namespace.Controls.IconButton" %>
<button runat="server" id="btnWrapper" class="iconButton" onserverclick="btnWrapper_ServerClick">
<asp:Label runat="server" ID="lblContent">
<%= this.Content %>
</asp:Label>
<i class="material-icons" id="icon" runat="server"><%= this.MaterialIconName %> </i>
</button>`
IconButton.ascx.cs:
public partial class IconButton : System.Web.UI.UserControl
{
public delegate void ClickEvent(object sender, System.EventArgs e);
public string MaterialIconName { get; set; }
public string Content { get; set; }
public event ClickEvent ButtonClick;
protected virtual void OnButtonClick(object sender, EventArgs e)
{
if (ButtonClick != null)
{
ButtonClick(sender, e);
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnWrapper_ServerClick(object sender, EventArgs e)
{
this.OnButtonClick(sender, e);
}
}
在WebForm中的用法:
<ctrl:IconButton ID="btnSearch2" runat="server" MaterialIconName="search" Content="Suche" OnButtonClick="btnSearch2_ButtonClick" />
Visual Studio创建的事件/无效:
protected void btnSearch2_ButtonClick()
{
}
我要创建的内容
protected void btnSearch2_ButtonClick(object sender, EventArgs e)
{
}
我知道我可以自己编辑方法定义,而且绝对不会有问题。但是由于不是只有我才能从事该项目,而且我也不想向所有我想要解决的人解释这种丑陋的行为。
任何想法都非常感谢!