日期:2014-05-18  浏览次数:20495 次

求助关于ASP.NET用户控件中按钮事件如何实现
问题如下:
我有一个Regist.aspx窗体,调用一个Regist.ascx用户控件.里面有个按钮Button2
已经把控件拽到窗体里了.
现在需要实现功能是在窗体中点用户控件中的Button2按钮来触发跳转窗体的事件
public   void   Button2_Click(Object   sender,EventArgs   e)
{
        Response.Redirect( "Login.aspx ");
}

请问需要怎么做才可以,请详细说一下,谢谢

------解决方案--------------------
就把Button2的Click写在用户控件就可以了(如果不在一个目录的话设置跳转的目录,因为在用户控件里Redirect的路径是按照用户控件所在目录开始的),然后把用户控件放到页面上,没有什么特别的地方。
------解决方案--------------------
可以直接在空间里写
------解决方案--------------------
usercontrol.ascx.cs中的处理:
1. 定义public的事件委托,如clickeventhandler;
2. 在usercontrol类中声明事件,如click;
3. 在usercontrol类中定义引发事件的方法,如onclick()方法;
4. 在usercontrol类的相关方法中调用引发事件的方法,如在button_click()中调用onclick()。

核心代码示意如下:
public delegate void clickeventhandler(object sender, eventargs e);
public class myusercontrol : system.web.ui.usercontrol
{
protected system.web.ui.webcontrols.button abutton;
public event clickeventhandler click;
protected void onclick(eventargs e)
{
if (click!=null) click(this, e);
}
private void abutton_click(object sender, system.eventargs e)
{
this.onclick(e);
}
}

包含usercontrol的页面cs文件中的处理:
1. initializecomponent()中增加事件处理程序,采用findcontrol方法找到usercontrol;
2. 定义事件处理方法,在该方法中处理usercontrol的事件,如usercontrol_clicked()。
核心代码示意如下:
private void initializecomponent()
{
this.load += new system.eventhandler(this.page_load);
myusercontrol uc = this.findcontrol( "myusercontrolid ") as myusercontrol;
uc.click += new clickeventhandler(this.usercontrol_clicked);
}
private void usercontrol_clicked(object sender, system.eventargs e)
{
// usercontrol_clicked event hanlder
}

总结一下,其实