动态定义控件时事件触发的总结
2008-04-19 01:19
323 查看
今天在改代码的时候,突然发现这个事件居然不能触发...Button1.Click +=new EventHandler(DeleteFiles);重复检查了好多遍都找不出问题...
百度\Google也找了个遍...大概代码如下:
public partial class Mail_Compose : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack) // 这里是关键
{
........
........
GetFiles();
........
........
}
}
protected void GetFiles()
{
LinkButton Button1 = new LinkButton();
..........
Button1.Click += new EventHandler(DeleteFiles); //此事件未能被触发..
.........
}
protected void DeleteFiles(object sender,EventArgs e)
{
........
需要执行的代码
........
}
}
关于以上代码不能触发的原因:想了很久,也查了很久,终于被我发现原来是IsPostBack的原因...为什么呢?
IsPostBack是用来判断页面是否被回发,即页面上是否有事件被回传至了服务器端..如果是返回true,不是则返回false
因为当在页面上定义了LinkButton 控件后...当执行了Click操作时...页面被回发至服务器端正..这时执行if(!IsPostBack)判断,,很显然括号里面
的逻辑表达式是错误的..因此接着的代码块事实上根本不会执行..即GetFiles()函数不会被调用..而
Button1.Click += new EventHandler(DeleteFiles);这个事件当然也不会被触发了...
如果要想让此事件被触发的话..只需要把if(!IsPostBack)判断取消就可以了或者把GetFiles();函数的调用放在if(!IsPostBack)的外面..
问题即可解决....
希望大家以后不要像我一样犯这样的错误...呵呵!
百度\Google也找了个遍...大概代码如下:
public partial class Mail_Compose : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack) // 这里是关键
{
........
........
GetFiles();
........
........
}
}
protected void GetFiles()
{
LinkButton Button1 = new LinkButton();
..........
Button1.Click += new EventHandler(DeleteFiles); //此事件未能被触发..
.........
}
protected void DeleteFiles(object sender,EventArgs e)
{
........
需要执行的代码
........
}
}
关于以上代码不能触发的原因:想了很久,也查了很久,终于被我发现原来是IsPostBack的原因...为什么呢?
IsPostBack是用来判断页面是否被回发,即页面上是否有事件被回传至了服务器端..如果是返回true,不是则返回false
因为当在页面上定义了LinkButton 控件后...当执行了Click操作时...页面被回发至服务器端正..这时执行if(!IsPostBack)判断,,很显然括号里面
的逻辑表达式是错误的..因此接着的代码块事实上根本不会执行..即GetFiles()函数不会被调用..而
Button1.Click += new EventHandler(DeleteFiles);这个事件当然也不会被触发了...
如果要想让此事件被触发的话..只需要把if(!IsPostBack)判断取消就可以了或者把GetFiles();函数的调用放在if(!IsPostBack)的外面..
问题即可解决....
希望大家以后不要像我一样犯这样的错误...呵呵!
相关文章推荐
- 还是动态添加控件 触发事件
- DataGridView数据绑定控件---------按钮添加和事件触发总结
- 动态生成的控件,怎样定义它的事件
- 总结了一下 GridView控件的常用事件触发时序
- DataGridView数据绑定控件---------按钮添加和事件触发总结
- DataGridView数据绑定控件---------按钮添加和事件触发总结
- 动态创建Pivot控件的PivotItem,LoadedPivotItem事件第一次不触发的问题
- 关于动态加载控件 事件触发的问题
- 工作总结 页面通过ajax 动态绑定 列表页面 列表每一项的事件 事件触发多次
- asp.net C#动态添加创建生成button按钮控件没有触发执行响应click绑定事件处理
- GridView 动态绑定控件 OnRowCommand事件触发
- 网页及其控件有很多触发事件
- 关于asp.net中控件&控件事件的个人总结
- javascript 动态改变onclick事件触发函数代码
- 动态创建控件支持事件响应并可保存与读取
- Android实战简易教程<四>(ScrollView和HorizontalScrollView动态添加控件并提供事件监听)
- 关于.Net WinForm 中的控件失去焦点时触发事件的问题
- 用 TMethod 解决动态创建控件后事件赋值的问题
- C#动态生成控件以及添加事件处理
- 【转】C# 中动态添加控件及其事件