如何调用按钮单击另一个ascx按钮上的一个ascx按钮单击?
问题描述:
我有一个ASCX页假设page1.ascx在我有一个按钮单击事件处理如何调用按钮单击另一个ascx按钮上的一个ascx按钮单击?
btnSave.Click +=
delegate
{
if (Save != null) Save(this, EventArgs.Empty);
};
,我有另一种的ascx页面假设page2.ascx中,我有一个按钮,点击
protected void btnEdit_Click(object sender, EventArgs e)
{
// want to call
btnSave.Click +=delegate
{
if (Save != null) Save(this, EventArgs.Empty);
};
}
我想在btnEdit(page2.ascx)上调用btnSave单击委托(page1.ascx)。如果是的话,那么可能如何呢?
答
我建议将代码从代码隐藏转移到单独的类中,以便它可以被两个.ascx文件访问。
答
如果我明白你的意思了,一个方法是如下:
public class Control1 : UserControl {
public delegate void ButtonClickHandler(object sender, EventArgs e);
public ButtonClickHandler ButtonClickEvent {get;set;}
public void Save(object sender, EventArgs e) {
//do something
if (ButtonClickEvent != null) {ButtonClickEvent(sender, e);}
//do something
}
}
public class Control2 : UserControl {
protected override void OnLoad(EventArgs e) {
control1.ButtonClickEvent += YourMethod;
}
protected void YourMethod(object sender, EventArgs e) { // do something here ... }
}
另一种方式是在第一控制财产申报您的按钮的事件,并在第二控制分配你的方法。
您不想触发事件,而是调用方法。因此,在第二个UserControl中实现一个公共方法'Save'并从'page1'调用它。 – 2012-01-30 13:01:30