自定义类中的asp c#动态按钮事件
我正在自定义类中创建一个动态按钮,在.aspx codebeahind之外。自定义类创建一个表对象,并在该表中生成一列按钮。生成后,表将加载到占位符控件中。除了这个问题外,一切正常: 如何在自定义类中以编程方式为Button对象分配“单击”事件自定义类中的asp c#动态按钮事件,c#,asp.net,button,C#,Asp.net,Button,我正在自定义类中创建一个动态按钮,在.aspx codebeahind之外。自定义类创建一个表对象,并在该表中生成一列按钮。生成后,表将加载到占位符控件中。除了这个问题外,一切正常: 如何在自定义类中以编程方式为Button对象分配“单击”事件 MyButton.Click += new EventHandler(MyButtonClick); 这将导致:“名称“MyButtonClick”在当前上下文中不存在”错误 我知道它在当前上下文中不存在,但一旦呈现了aspx页面,codebehin
MyButton.Click += new EventHandler(MyButtonClick);
这将导致:“名称“MyButtonClick”在当前上下文中不存在”错误
我知道它在当前上下文中不存在,但一旦呈现了aspx页面,codebehind将包含一个处理“MyButtonClick”的方法。我不知道如何将单击事件方法名称存储到自定义类的Button对象中,并将其传递给要呈现的aspx codebehind。您必须在自定义控件中定义事件。单击按钮时触发该事件,以便.aspx可以处理它 编辑:相同的原则适用于自定义类 控制代码隐藏:
public delegate void ButtonEventHandler();
public event ButtonEventHandler ButtonEvent;
protected void Button1_Click(object sender, EventArgs e)
{
ButtonEvent();
}
protected override void OnInit(System.EventArgs e)
{
control1.ButtonEvent+=
new Control1.ButtonEventHandler (whatever_ButtonEvent);
}
protected void whatever_ButtonEvent()
{
//do something
}
.ASPX代码隐藏:
public delegate void ButtonEventHandler();
public event ButtonEventHandler ButtonEvent;
protected void Button1_Click(object sender, EventArgs e)
{
ButtonEvent();
}
protected override void OnInit(System.EventArgs e)
{
control1.ButtonEvent+=
new Control1.ButtonEventHandler (whatever_ButtonEvent);
}
protected void whatever_ButtonEvent()
{
//do something
}
必须在自定义控件中定义事件。单击按钮时触发该事件,以便.aspx可以处理它 编辑:相同的原则适用于自定义类 控制代码隐藏:
public delegate void ButtonEventHandler();
public event ButtonEventHandler ButtonEvent;
protected void Button1_Click(object sender, EventArgs e)
{
ButtonEvent();
}
protected override void OnInit(System.EventArgs e)
{
control1.ButtonEvent+=
new Control1.ButtonEventHandler (whatever_ButtonEvent);
}
protected void whatever_ButtonEvent()
{
//do something
}
.ASPX代码隐藏:
public delegate void ButtonEventHandler();
public event ButtonEventHandler ButtonEvent;
protected void Button1_Click(object sender, EventArgs e)
{
ButtonEvent();
}
protected override void OnInit(System.EventArgs e)
{
control1.ButtonEvent+=
new Control1.ButtonEventHandler (whatever_ButtonEvent);
}
protected void whatever_ButtonEvent()
{
//do something
}
让我们把这个概念应用到一个有文本框和两个按钮的用户控件上。用户控件放置在Gridview中。当代码运行时,事件处理程序中的方法始终为null。我认为必须这样做,因为a按钮位于gridview中的用户控件中 这是我的用户控制代码 公共部分类用户\u控件\u GridViewFilter:System.Web.UI.UserControl { } 我在aspx页面上注册控件
((User_Controls_GridViewFilter)gvMapLayer.HeaderRow.FindControl("FilterBox1")).UserControlButtonClicked
+= new ButtonEventHandler(User_Controls_GridViewFilter_UserControlButtonClicked);
让我们把这个概念应用到一个有文本框和两个按钮的用户控件上。用户控件放置在Gridview中。当代码运行时,事件处理程序中的方法始终为null。我认为必须这样做,因为a按钮位于gridview中的用户控件中 这是我的用户控制代码 公共部分类用户\u控件\u GridViewFilter:System.Web.UI.UserControl { } 我在aspx页面上注册控件
((User_Controls_GridViewFilter)gvMapLayer.HeaderRow.FindControl("FilterBox1")).UserControlButtonClicked
+= new ButtonEventHandler(User_Controls_GridViewFilter_UserControlButtonClicked);
你说的自定义类是指自定义控件吗?不,只是一个自定义类,如:带有属性、方法等的公共类DataSetTableRenderer{}。你说的自定义类是指自定义控件吗?不,只是一个自定义类,如:带有属性、方法等的公共类DataSetTableRenderer{}。。。