`
ch_kexin
  • 浏览: 897903 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

(摘抄)为什么设置了DropDownList的AutoPostBack="True"还是不能触发SelectedIndexChanged事件?

    博客分类:
  • .NET
阅读更多
曾经遇到过这个问题,后来在LoveCherry的博客中找到了更详细的解释。

该文地址:http://lovecherry.cnblogs.com/archive/2005/04/26/145705.html

原文如下:

有人问
(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');");
            }
测试可知。


[/color][color=black]
分享到:
评论

相关推荐

    DataList中如何响应DropDownList的SelectedIndexChanged事件

    2. 在`ItemDataBound`事件中,为每个`DropDownList`添加事件处理程序,并设置`AutoPostBack`为`True`。 3. 实现`SelectedIndexChanged`事件处理程序,获取当前选中的值和`DataList`项的标识,执行相应的业务逻辑。 ...

    解决dropdownlist数据绑定后选择下拉列表后返回的值不变或为空以及不执行SelectedIndexChanged事件

    然而,在实际应用中,经常会遇到一些问题,比如DropdownList的选择值不变或者为空,又或者是选择了某项后不能触发`SelectedIndexChanged`事件。本文将针对这两个常见问题进行详细的分析与解决方案的提供。 #### ...

    .net(C#)三级联动

    AutoPostBack="True" &lt;/asp:DropDownList&gt; &lt;span lang="zh-cn"&gt;市:&lt;/span&gt;&lt;asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True" &lt;/asp:DropDownList&gt; &lt;span lang=...

    DropDownList SelectedIndexChanged Update Action In DataList

    3. **事件处理**:为`DropDownList`设置`AutoPostBack="true"`,使得每次选择变化时都会引发回发。然后,为`SelectedIndexChanged`事件创建一个事件处理程序,通常在代码-behind中实现。 4. **获取上下文**:在事件...

    Dropdownlist 只读不可选择的方法实例

    这个实例主要探讨如何将DropdownList设置为只读模式,即用户不能从列表中进行选择,但仍然可以显示预设的值。下面我们将详细讲解实现这一功能的关键步骤和技术。 首先,我们从`Default.aspx`页面开始。在ASP.NET ...

    三个DropDownList自动生成年月日

    在前台代码中,我们需要添加三个DropDownList控件,并设置其AutoPostBack属性为True,以便在用户选择年或月时,自动更新日的选项。 ```html &lt;asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack=...

    gridview中两个个dropdownlist联动

    上述代码中,"DDXiangz" DropdownList的`OnSelectedIndexChanged`事件设置为`ddlXiang_SelectedIndexChanged2`,这意味着当用户在"乡"的DropdownList中做出选择时,会触发这个事件,我们将在后台代码中处理这个事件...

    DropDownList操作

    只需将`DropDownList`置于`UpdatePanel`内,并设置`AutoPostBack="true"`。 总之,`DropDownList`控件在C# ASP.NET开发中扮演着重要角色,提供了一种高效、直观的方式来呈现可选项。通过理解并熟练掌握其初始化、...

    DropDownList常用方法

    3. `SelectIndexChanged`事件:当用户更改选定项时触发,通常与`AutoPostBack="true"`配合使用。 四、数据绑定 使用`DataBind()`方法可以将数据源绑定到DropDownList,例如: ```csharp ddlCategories.DataSource =...

    AJAX实现dropdownlist无刷新动态绑定,联动

    &lt;asp:DropDownList ID="ddlCountry" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlCountry_SelectedIndexChanged"&gt; &lt;!-- 设置初始数据 --&gt; &lt;/asp:DropDownList&gt; &lt;asp:DropDownList ID=...

    DropDownList下拉菜单显示不同图片

    2. **事件处理**:我们需要监听DropDownList的SelectedIndexChanged事件,当用户选择新项时,该事件会被触发。在事件处理程序中,我们可以根据选中的值来改变图片的显示。 ```csharp protected void dropdownList_...

    .NET DropDownList实现省市联动

    `ID`属性用于唯一标识控件,`runat="server"`表示它将在服务器端处理,`AutoPostBack="true"`使得当选项改变时,页面会自动回发到服务器,`OnSelectedIndexChanged`事件用于触发省份选择更改时的事件处理函数。...

    asp.net中dropdownlist使用AJAX联动

    在本例中,我们将两个DropdownList分别放在两个UpdatePanel中,并设置Triggers,以便当第一个DropdownList的SelectedIndexChanged事件触发时,更新第二个DropdownList所在的UpdatePanel。 ```asp ...

    DropDownList 的常用属性和事件 asp.net 内含详细示例

    注意,此事件只有在 AutoPostBack 设置为 true 时才会触发。 示例: ```csharp protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { string selectedValue = DropDownList1....

    SelectedIndexChanged

    值得注意的是,为了使`SelectedIndexChanged`事件正常工作,通常需要设置控件的`AutoPostBack`属性为`True`。这会使得控件在每次选择改变时都会向服务器发送请求,从而触发事件处理。 总的来说,`...

    dropdownlist做的二级联动

    然后,为第一个DropdownList添加SelectedIndexChanged事件处理程序,这将在用户选择新选项时触发。在事件处理程序中,我们查询数据库以获取与所选省份关联的城市,并将结果绑定到第二个DropdownList。代码示例如下:...

    asp.net使用DropDownList多级分类下拉

    childDdl.AutoPostBack = true; childDdl.SelectedIndexChanged += (sender, e) =&gt; LoadChildCategories(category.Id, childDdl); BindMultiLevelDropdown(childDdl, categories, category.Id); item.Controls....

    Asp.net 2.0 一个简单的联动DropDownList示例(示例代码下载).

    &lt;asp:DropDownList ID="ddlParent" runat="server" OnSelectedIndexChanged="ddlParent_SelectedIndexChanged" AutoPostBack="true"&gt;&lt;/asp:DropDownList&gt; &lt;asp:DropDownList ID="ddlChild" runat="server"&gt;&lt;/asp:...

    webform dropdownlist.7z

    DropdownList有几个重要的事件,如`SelectedIndexChanged`,当用户更改选定项时触发。在事件处理程序中,可以通过`e.NewValue`获取新选中的值,`e.Item.Text`获取新选中的文本。 5. **动态添加选项**: 有时我们...

    asp.net中两个dropdownlist联动实现大类与大类中的分类

    7. **启用PostBack**:为了使DropdownList的`SelectedIndexChanged`事件生效,需要设置`AutoPostBack="true"`属性。 8. **测试与优化**:部署并测试网页,确保联动效果正常。如果存在性能问题,可以考虑使用缓存或...

Global site tag (gtag.js) - Google Analytics