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> 才可以提交,否则就会弹出新的窗口了。
所以很多时候,错误的原因并不是我们认为的那样,换一个角度、换一种思路、换一种方式,可能更容易解决问题。
作者: XuGang 网名:钢钢 |
出处: http://xugang.cnblogs.com |
声明: 本文版权归作者和博客园共有。转载时必须保留此段声明,且在文章页面明显位置给出原文连接地址! |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?