写的还行,转来大家看看

为什么DropDownList的SelectedIndexChanged事件触发不了?

为什么设置了DropDownList的AutoPostBack="True"还是不能触发SelectedIndexChanged事件?(摘抄加上自己的一些错误经历) 收藏

有人问

(1)AutoPostBack="True"

<asp:DropDownList id="DropDownList1" runat="server" AutoPostBack="True"></asp:DropDownList>

(2)事件也注册了

this.DropDownList1.SelectedIndexChanged +=

new System.EventHandler(this.DropDownList1_SelectedIndexChanged);

(3)事件也写了

private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)

{ Response.Write(this.DropDownList1.SelectedItem); }

怎么还是不能输出选定项?进行调试发现不能进入SelectedIndexChanged事件。

其实还有一种可能,就是你为DropDownList的不同option设置了相同的value

比如后台这么写:

if(!IsPostBack)

{

for(int i=0;i<10;i++)

this.DropDownList1.Items.Add(new ListItem(i.ToString(),"same_value")); }

这样不会触发SelectedIndexChanged事件,修改成

if(!IsPostBack) {

for(int i=0;i<10;i++)

this.DropDownList1.Items.Add(new ListItem(i.ToString(),i.ToString())); }

一切些正常,根据msdn的解释:

ListControl.SelectedIndexChanged 事件 当列表控件的选定项在信息发往服务器之间变化时发生

这不同于js的onchange事件,改为

if(!IsPostBack)

{

for(int i=0;i<10;i++)

this.DropDownList1.Items.Add(new ListItem(i.ToString(),"same_value"));

this.DropDownList1.Attributes.Add("onchange","alert('test');");

}

测试可知。

上面文章摘自http://lovecherry.cnblogs.com/archive/2005/04/26/145705.html

今天很奇怪按照上面的测试了,都没有问题。于是很郁闷,把dropdownlist抠出来测试,就可以了,于是我把整个页面单独拿出来,一块一块抠掉,然后测试。终于让我发现了问题的根源,呵呵,其实是自己太粗心照成的。

由于页面中存在form标签,而我在母版里已经有form了。

<form ID="form3" action="" method="post" name="form3"> </form>

也就是说 存在2个form标签,导致ddl后台事件触发不了。

为什么DropDownList的SelectedIndexChanged事件触发不了的更多相关文章

  1. [小问题笔记(二)] 可能导致DropDownList的SelectedIndexChanged事件不触发的几种情况

    遇到SelectedIndexChanged事件没有触发,可以依次检查以下几种情况是否在程序中出现. 一.DropDownList的不同option设置了相同的value . 二.没有写 AutoPo ...

  2. DropDownList 控件的SelectedIndexChanged事件触发不了

    先看看网友的问题: 根据Asp.NET的机制,在html markup有写DropDownList控件与动态加载的控件有点不一样.如果把DropDownList控件写在html markup,即.as ...

  3. DropDownList 控件不能触发SelectedIndexChanged 事件

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

  4. GridView点击行触发SelectedIndexChanged事件

    1.在<% @Page ...... %>指令中添加 EnableEventValidation="false" 2.在RowDataBound事件中添加 protec ...

  5. 绑定下拉框时避免触发SelectedIndexChanged事件

    在从数据库读取数据集绑定到下拉框时会立即触发其SelectedIndexChanged事件造成异常,可对其SelectedIndexChanged事件采取先解除后附加的方法解决. cmbXl_gt.V ...

  6. ComboBox绑定数据源时触发SelectedIndexChanged事件的处理办法

    转载:http://blog.sina.com.cn/s/blog_629e606f01014d4b.html ComboBox最经常使用的事件就是SelectedIndexChanged.但在将Co ...

  7. VS2010 winform开发笔记---combox的SelectedIndexChanged事件及级联问题

    DisplayMember绑定需要显示的数据表字段, 而ValueMember绑定需要获取选择的项的值. 然后通过 combo.SelectedValue就可以取得选中项的值了. DisplayMem ...

  8. 【深入浅出Linux网络编程】 “基础 -- 事件触发机制”

    回顾一下“"开篇 -- 知其然,知其所以然"”中的两段代码,第一段虽然只使用1个线程但却也只能处理一个socket,第二段虽然能处理成百上千个socket但却需要创建同等数量的线程 ...

  9. Unity3D 自定义事件(事件侦听与事件触发)

    先来看下效果图,图中点击 Cube(EventDispatcher),Sphere(EventListener)以及 Capsule(EventListener)会做出相应的变化,例子中的对象相互之间 ...

随机推荐

  1. VS2010/MFC编程入门之十四(对话框:向导对话框的创建及显示)

    原文地址:http://www.jizhuomi.com/software/166.html 上一讲鸡啄米讲了属性页对话框和相关的两个类CPropertyPage类和CPropertySheet类,对 ...

  2. 把 Eclipse 中的工程 Push 到 Github(适用 Windows 平台)

    今天发现一小技巧,关于如何把Eclipse的某一个Existing project push 到github服务器. Eclipse 应该是 JavaEE 版本. 在project 右键 team, ...

  3. hdu 4731

    一道找规律的题,但今天的智商捉急,一直都想不到点子上: 比赛之后和别人讨论的时候,在n=2的情况下,前面两个是aa,后面就接着很多个aababb,然后最后再判断下就行了~~~ 以后对于这种题还是不要太 ...

  4. 在openshift上自定义node.js的版本

    https://github.com/ramr/nodejs-custom-version-openshift 由于是线上服务器,一步一步来: 先把上面的工程拉下来,覆盖到初始化的工程里,提交,让服务 ...

  5. 《鸟哥的Linux私房菜》读书笔记四

    1.Linux的目录配置以『树状目录』来配置,至於磁碟分割槽(partition)则需要与树状目录相配合! 请问,在预设的情况下,在安装的时候系统会要求你一定要分割出来的两个Partition为何? ...

  6. Linux中的随机数文件 /dev/random /dev/urandom

    Linux中的随机数可以从两个特殊的文件中产生,一个是/dev/urandom.另外一个是/dev/random.他们产生随机数的原理是利用当前系统的熵池来计算出固定一定数量的随机比特,然后将这些比特 ...

  7. Linux下压缩某个文件夹(文件夹打包)

    tar -zcvf /home/xahot.tar.gz /xahottar -zcvf 打包后生成的文件名全路径 要打包的目录例子:把/xahot文件夹打包后生成一个/home/xahot.tar. ...

  8. “net.tcp://localhost:9000/ObtainData”处带有协定“"IObtainData"”的 ChannelDispatcher 无法打开其 IchannelListener。

    http://stackoverflow.com/questions/1252791/how-to-solve-the-channeldispatcher-is-unable-to-open-its- ...

  9. efront二次开发记要

    efront系统是一套开源的在线学习系统,是用PHP编写的,内含“考试”功能.该系统的开源的是社区版,虽然看上去功能强大,但使用起来却很不符合国情.为了让公司使用,先做了一次最简化的二次开发,由于是最 ...

  10. (转载)JS事件监听 JS:attachEvent和addEventListener使用方法

    (转载)http://www.chhua.com/web-note146 attachEvent和addEventListener使用方法 Js代码 <html> <head> ...