当前位置:编程学习 > C#/ASP.NET >>

DropDownList的OnSelectedIndexChanged不响应。。。autoPostBack已经设置为true了

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
            <asp:ListItem>1</asp:ListItem>
            <asp:ListItem>2</asp:ListItem>
        </asp:DropDownList>


protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        this.Label1.Text = "1";
    }


就这么简单的代码,哪里出错了? --------------------编程问答-------------------- 自己顶下,大家帮我看看啊。。。到底错在哪里了。。。 --------------------编程问答-------------------- 用的2003 还是2005

有抛到后台吗?还是点了压根没动静?

--------------------编程问答-------------------- 这段代码没问题 我可以响应啊 --------------------编程问答-------------------- 用的是05,点了之后压根就没动静 --------------------编程问答-------------------- 删了换一个 dropdownlist --------------------编程问答--------------------
感觉像文件没保存,或没刷新

把生成的HTML页面 源码打开来看看, 有没有加上 onchange()事件 --------------------编程问答-------------------- 代码没有问题。 --------------------编程问答-------------------- 原因已经查明。。。是ie7的问题,我用ie6打开这个页面,没有问题,正常,但是在ie7下,事件不响应,查看html源文件,也没有onchange()事件

真是个奇怪的问题 --------------------编程问答-------------------- 源码会跟 IE有关么?

源码是这样的么,没有“onchange”? <select name="DropDownListBXXX" onchange="javascript:setTimeout('__doPostBack(\'DropDow --------------------编程问答-------------------- 我不知道这个问题的根本原因是不是ie7,但是这个页面在ie7下生成的html代码如下

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
无标题页
</title></head>
<body>
    <form name="form1" method="post" action="testaspx.aspx" id="form1">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTczMjI5NjczOQ9kFgICAw9kFgICAQ8QZGQWAWZkZHxlwl/S0qUo0gxjUhyss7V2dTS6" />

    <div>
        <select name="DropDownList1" id="DropDownList1">
<option selected="selected" value="1">1</option>
<option value="2">2</option>

</select>
        <span id="Label1"></span></div>
    
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwKlnMvjAQKSi6WLBgKTi6WLBqaQ2WLNZZkYfN88xDBYe2Cs2XTi" /></form>
</body>
</html> --------------------编程问答-------------------- 但是在ie6下面生成的代码如下
    <div>
        <select name="DropDownList1" onchange="javascript:setTimeout('__doPostBack(\'DropDownList1\',\'\')', 0)" id="DropDownList1">
<option value="1">1</option>
<option selected="selected" value="2">2</option>

</select>
        <span id="Label1">1</span></div>
    
<div>


这是ie的问题吗? --------------------编程问答-------------------- IE7少了 onchange="javascript:setTimeout

估计是缓存了页面,没刷新,源码不应该不同的 --------------------编程问答-------------------- 恩,ie7的html源码少了onchange,这个应该不是缓存的问题,我清空了缓存后还是这样,而且,其他页面都没有问题。。。就是这个dropdownlist的onSelectedIndexChanged有问题 --------------------编程问答-------------------- Page_Load 中如果有绑定DropDownList的代码,则加入
If(!IsPostBack)
{
} --------------------编程问答-------------------- 这个DropDownList是静态的,所以在Page_Load中不需要有任何代码 --------------------编程问答-------------------- 用!IsPostBack才是王道!
应该要把"1"改为  1
加""可能认为是字符串了
试试吧,goodlucky!!! --------------------编程问答-------------------- 楼上的兄弟,现在的问题是,在ie7下,这个页面根本就不会响应onSelectedIndexChanged所指定的函数,根本就没有回传,和IsPostBack是没有关系的,而且,我这里也用不到这个啊 --------------------编程问答-------------------- DropDownList控件最上部加一个空的项,看看呢 --------------------编程问答-------------------- SelectedIndexChanging看看 --------------------编程问答-------------------- 这是因为你有一项没有设
AutoPostBack="True"
加上这一句就行了
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,