zoukankan      html  css  js  c++  java
  • 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
    声明: 本文版权归作者和博客园共有。转载时必须保留此段声明,且在文章页面明显位置给出原文连接地址!
  • 相关阅读:
    Ionic2开发环境搭建
    关于在浏览器中测试cordova plugin的注意事项。
    像azure一样桌面显示Windows系统信息
    吐槽下微软
    Hyper-v UBUNTU 12.04 模板设置
    MongoDB整库备份与还原以及单个collection备份、恢复方法
    nginx 配置
    vsftpd配置文件详解
    分享几个免费IP地址查询接口(API)
    黑客帝国效果
  • 原文地址:https://www.cnblogs.com/xugang/p/2107425.html
Copyright © 2011-2022 走看看