曾经遇到过这个问题,后来在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]
分享到:
相关推荐
2. 在`ItemDataBound`事件中,为每个`DropDownList`添加事件处理程序,并设置`AutoPostBack`为`True`。 3. 实现`SelectedIndexChanged`事件处理程序,获取当前选中的值和`DataList`项的标识,执行相应的业务逻辑。 ...
然而,在实际应用中,经常会遇到一些问题,比如DropdownList的选择值不变或者为空,又或者是选择了某项后不能触发`SelectedIndexChanged`事件。本文将针对这两个常见问题进行详细的分析与解决方案的提供。 #### ...
AutoPostBack="True" </asp:DropDownList> <span lang="zh-cn">市:</span><asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="True" </asp:DropDownList> <span lang=...
3. **事件处理**:为`DropDownList`设置`AutoPostBack="true"`,使得每次选择变化时都会引发回发。然后,为`SelectedIndexChanged`事件创建一个事件处理程序,通常在代码-behind中实现。 4. **获取上下文**:在事件...
这个实例主要探讨如何将DropdownList设置为只读模式,即用户不能从列表中进行选择,但仍然可以显示预设的值。下面我们将详细讲解实现这一功能的关键步骤和技术。 首先,我们从`Default.aspx`页面开始。在ASP.NET ...
在前台代码中,我们需要添加三个DropDownList控件,并设置其AutoPostBack属性为True,以便在用户选择年或月时,自动更新日的选项。 ```html <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack=...
上述代码中,"DDXiangz" DropdownList的`OnSelectedIndexChanged`事件设置为`ddlXiang_SelectedIndexChanged2`,这意味着当用户在"乡"的DropdownList中做出选择时,会触发这个事件,我们将在后台代码中处理这个事件...
只需将`DropDownList`置于`UpdatePanel`内,并设置`AutoPostBack="true"`。 总之,`DropDownList`控件在C# ASP.NET开发中扮演着重要角色,提供了一种高效、直观的方式来呈现可选项。通过理解并熟练掌握其初始化、...
3. `SelectIndexChanged`事件:当用户更改选定项时触发,通常与`AutoPostBack="true"`配合使用。 四、数据绑定 使用`DataBind()`方法可以将数据源绑定到DropDownList,例如: ```csharp ddlCategories.DataSource =...
<asp:DropDownList ID="ddlCountry" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlCountry_SelectedIndexChanged"> <!-- 设置初始数据 --> </asp:DropDownList> <asp:DropDownList ID=...
2. **事件处理**:我们需要监听DropDownList的SelectedIndexChanged事件,当用户选择新项时,该事件会被触发。在事件处理程序中,我们可以根据选中的值来改变图片的显示。 ```csharp protected void dropdownList_...
`ID`属性用于唯一标识控件,`runat="server"`表示它将在服务器端处理,`AutoPostBack="true"`使得当选项改变时,页面会自动回发到服务器,`OnSelectedIndexChanged`事件用于触发省份选择更改时的事件处理函数。...
在本例中,我们将两个DropdownList分别放在两个UpdatePanel中,并设置Triggers,以便当第一个DropdownList的SelectedIndexChanged事件触发时,更新第二个DropdownList所在的UpdatePanel。 ```asp ...
注意,此事件只有在 AutoPostBack 设置为 true 时才会触发。 示例: ```csharp protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { string selectedValue = DropDownList1....
值得注意的是,为了使`SelectedIndexChanged`事件正常工作,通常需要设置控件的`AutoPostBack`属性为`True`。这会使得控件在每次选择改变时都会向服务器发送请求,从而触发事件处理。 总的来说,`...
然后,为第一个DropdownList添加SelectedIndexChanged事件处理程序,这将在用户选择新选项时触发。在事件处理程序中,我们查询数据库以获取与所选省份关联的城市,并将结果绑定到第二个DropdownList。代码示例如下:...
childDdl.AutoPostBack = true; childDdl.SelectedIndexChanged += (sender, e) => LoadChildCategories(category.Id, childDdl); BindMultiLevelDropdown(childDdl, categories, category.Id); item.Controls....
<asp:DropDownList ID="ddlParent" runat="server" OnSelectedIndexChanged="ddlParent_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList> <asp:DropDownList ID="ddlChild" runat="server"></asp:...
DropdownList有几个重要的事件,如`SelectedIndexChanged`,当用户更改选定项时触发。在事件处理程序中,可以通过`e.NewValue`获取新选中的值,`e.Item.Text`获取新选中的文本。 5. **动态添加选项**: 有时我们...
7. **启用PostBack**:为了使DropdownList的`SelectedIndexChanged`事件生效,需要设置`AutoPostBack="true"`属性。 8. **测试与优化**:部署并测试网页,确保联动效果正常。如果存在性能问题,可以考虑使用缓存或...