DropDownList 控件不能触发SelectedIndexChanged 事件的另一个原因

简介:

相信DropDownList 控件不能触发SelectedIndexChanged 事件已经不是什么新鲜事情了,原因也无外乎以下几种:

1、DropDownList 控件的属性 AutoPostBack="True" 没有写;

2、DropDownList 控件的数据绑定没有放在if (!Page.IsPostBack) 里面;

3、DropDownList 控件选定项的value 值只有在发生变化时,才将信息发往服务器;

详细内容在六年前lovecherry 的一篇博文讲解得很清楚,地址:http://www.cnblogs.com/lovecherry/archive/2005/04/26/145705.html

可是,如果以上问题都排除以后,DropDownList 控件仍然不能触发SelectedIndexChanged 事件的话,那会是什么原因呢?

很幸运,本人今天遇见了。并且最有意思的是:

在火狐(Firefox)中,DropDownList 控件能够触发SelectedIndexChanged 事件;

而在 IE 8中,不好意思,DropDownList 控件对选择项后毫无反应,就连Page_Load 事件都根本没有进去!

所以,错误根本不在DropDownList 控件本身的原因上。

折腾了快2个小时后,得出结论:

由于本人的程序使用了<frameset> 框架,并且DropDownList 控件所在的页面是使用 window.showModalDialog() 弹出的模态对话框,

所以,submit 默认会提交到新的页面窗口。

解决办法也很简单,只要在该页面窗口中的<head> 中添加如下代码:

<base target=_self></base>

即可!

其实,原因的根本是:

在使用 showModalDialog 的模态窗体中,必须加上<base target=_self></base> 才可以提交,否则就会弹出新的窗口了。

所以很多时候,错误的原因并不是我们认为的那样,换一个角度、换一种思路、换一种方式,可能更容易解决问题。




本文转自钢钢博客园博客,原文链接:http://www.cnblogs.com/xugang/archive/2011/07/15/2107425.html,如需转载请自行联系原作者

相关文章
|
8月前
|
C#
c# Gridview 点击checkbox 触发的事件
c# Gridview 点击checkbox 触发的事件
|
小程序
小程序中点击子元素事件而不触发父元素的点击事件
小程序中点击子元素事件而不触发父元素的点击事件
179 0
|
2月前
|
JavaScript 前端开发
除了点击事件,`addEventListener` 还能用于处理哪些事件类型?
【10月更文挑战第29天】 `addEventListener` 能够处理的事件类型非常丰富,涵盖了各种用户交互和页面状态变化的场景,通过合理地使用这些事件类型,可以为网页或应用程序添加丰富多样的交互效果和功能。
|
8月前
失焦事件和点击事件
失焦事件和点击事件
47 1