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

    声明: 本文版权归作者和博客园共有!转载时必须保留此段声明,且在文章页面明显位置给出原文连接。

  • 相关阅读:
    常用知识点集合
    LeetCode 66 Plus One
    LeetCode 88 Merge Sorted Array
    LeetCode 27 Remove Element
    LeetCode 26 Remove Duplicates from Sorted Array
    LeetCode 448 Find All Numbers Disappeared in an Array
    LeetCode 219 Contains Duplicate II
    LeetCode 118 Pascal's Triangle
    LeetCode 119 Pascal's Triangle II
    LeetCode 1 Two Sum
  • 原文地址:https://www.cnblogs.com/iceicebaby/p/2128774.html
Copyright © 2011-2022 走看看