62,234
社区成员




<asp:Button ID="btndel" runat="server" />
。
//test.aspx假设调用了该控件
namespace np1
{
public partial class test:System.Web.UI.Page
{
//这里假设你已经在test.aspx里注册了do控件,且id为Uc1
protected void Page_Load(object sender,EventArgs e)
{
Uc1.OnBtnClick += new BtnClickDelegate(btnclickfunc);
}
//注意,给出具体实现的方法要和委托结构一样
private void btnclickfunc()
{
//这里给出具体实现
//以后在每个调用的页面给出不同的实现就可以了
}
}
}
using System;
using System.Data;
using System.Web;
//...自己加上
/*
假设你项目的命名空间是np1,一般一个项目会用一个统一的命名空间,vs2005里建立新页面默认是不加命名空间的!
没有也是可以的,需要的话自己手动加上,不过在aspx的Inherits=""里也要加上如np1.do
*/
namespace np1
{
//添加代理,如果要参数请添加参数,这里设置无参数无返回值
//这是关键,在do.aspx外定义,位置可以放在np1下的其他地方
public delegate void BtnClickDelegate();
/*这里类名都是根据你页面假设的,参考我代码就可以了,不一定要一样*/
public partial class do:System.Web.UI.UserContril
{
//在控件里定义按钮委托对象
public BtnClickDelegate OnBtnClick;
//"btndel"的click事件
//控件按钮在点击时实际上是执行委托的方法
//这个委托方法将在你需要引用控件的页面里给出
protected void btndel_Click(object sender,EventArgs e)
{
if(OnBtnClick != null){OnBtnClick();}
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
//uc1用户控件
(uc1.FindControl("Button1") as Button).Click += new EventHandler(Button1_Click);
}
protected void Button1_Click(object sender, EventArgs e)
{
string keyword=(uc1.FindControl("TextBox1") as TextBox).Text;
//绑定操作
}