Web用户控件和Web主页面的事件传递
2005-10-26 15:21
309 查看
定义一个用户控件,让其自身触发的事件能够触发主页面的事件。
首先,定义一个用户控件:
命名为WUC02.ascx,在其中放置一个TextBox,把AutoPostBack设置为True.
为其添加一个TextChange事件,页面主要代码如下(代码有省略):
public abstract class WUC02 : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.TextBox txt1;
public delegate void myDelegate(object sender,myEventArgs e); //定义代理
public event myDelegate myEvent; //定义事件
private void txt1_TextChanged(object sender, System.EventArgs e)
{
if(txt1.Text == "yangxi")
{
myEventArgs eveArgs = new myEventArgs();
eveArgs.Value = "/"" + txt1.Text + "/" is pass by the Event Args";
if(myEvent != null)
{
myEvent(txt1,eveArgs); //触发事件
}
}
else
{
txt1.Text = "";
}
}
}
//自定义事件的参数
public class myEventArgs:System.EventArgs
{
private string _value;
public string Value
{
get{ return _value; }
set{ _value = value;}
}
}
主页面,如下图:
后台主要代码如下(代码有省略):
public class WebForm10 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.PlaceHolder PH1;
protected System.Web.UI.WebControls.Label lbl1;
protected WUC02 myUC2;
private void Page_Load(object sender, System.EventArgs e)
{
myUC2 = (WUC02)LoadControl("./WUC02.ascx");//添加用户控件
myUC2.myEvent += new WUC02.myDelegate(this.OnMyEvent); //注册事件
PH1.Controls.Add(myUC2);
}
//事件触发的方法
private void OnMyEvent(object sender,myEventArgs e)
{
lbl1.Text = e.Value;
}
运行如下:
首先,定义一个用户控件:
命名为WUC02.ascx,在其中放置一个TextBox,把AutoPostBack设置为True.
为其添加一个TextChange事件,页面主要代码如下(代码有省略):
public abstract class WUC02 : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.TextBox txt1;
public delegate void myDelegate(object sender,myEventArgs e); //定义代理
public event myDelegate myEvent; //定义事件
private void txt1_TextChanged(object sender, System.EventArgs e)
{
if(txt1.Text == "yangxi")
{
myEventArgs eveArgs = new myEventArgs();
eveArgs.Value = "/"" + txt1.Text + "/" is pass by the Event Args";
if(myEvent != null)
{
myEvent(txt1,eveArgs); //触发事件
}
}
else
{
txt1.Text = "";
}
}
}
//自定义事件的参数
public class myEventArgs:System.EventArgs
{
private string _value;
public string Value
{
get{ return _value; }
set{ _value = value;}
}
}
主页面,如下图:
后台主要代码如下(代码有省略):
public class WebForm10 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.PlaceHolder PH1;
protected System.Web.UI.WebControls.Label lbl1;
protected WUC02 myUC2;
private void Page_Load(object sender, System.EventArgs e)
{
myUC2 = (WUC02)LoadControl("./WUC02.ascx");//添加用户控件
myUC2.myEvent += new WUC02.myDelegate(this.OnMyEvent); //注册事件
PH1.Controls.Add(myUC2);
}
//事件触发的方法
private void OnMyEvent(object sender,myEventArgs e)
{
lbl1.Text = e.Value;
}
运行如下:
相关文章推荐
- ASP.NET页面上直接放置用户控件WebUserControl1时的事件顺序
- web页面中给用户控件传递参数
- js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符
- 在用户控件中如何调用主页面的事件之页面反射
- saucer(思归)解决的关于:页面A.aspx 动态载入用户自定义控件a.ascx,但a.ascx中的按钮提交后,不执行按钮的事件,而是直接刷新页面
- web用户控件调用.aspx页面里的方法
- ASP.NET Web页面(.aspx)添加用户控件(.ascx)无显示的问题
- C# winform中自定义用户控件 然后在页面中调用用户控件的事件
- Asp.Net其他页面如何调用Web用户控件写的分页
- 给web用户控件自定义后台事件
- 页面装载用户控件时的事件顺序 (转)
- web用户控件调用.aspx页面里的方法
- 给WEB用户控件添加事件
- 在asp.net中为Web用户控件添加属性和事件
- 页面上调用用户控件的事件
- 一个包含上传控件的用户控件把信息传递给包含页面的方法
- 关于页面中获取用户控件中的控件事件的方法
- C#向用户控件中传递参数(涉及Asp.net页面的执行过程)
- 使用MVC框架中要注意的问题(五):如何在页面和用户控件之间传递数据
- VS2008 Tips #008 如何创建ASP.NET Web 用户控件并包含在Web 页面中