【发布时间】:2013-11-30 19:07:46
【问题描述】:
第 1 步。DropDownList 用 Page_Load 上的项目填充。
第 2 步。我选择一个项目并启动回发。在此回发期间页面首先刷新,然后 OnSelectedIndexChanged 触发并运行“ddl1_Select”函数。
如果我用 Aspx (HTML) 文件中的数据静态填充 DropDownList,它可以正常工作。 但是,如果我在代码隐藏中填充它,则 OnSelectedIndexChanged 事件永远不会触发,并且 DDL1_Select 过程不会启动。页面只是回帖并跳过我的程序。为什么此事件不触发以及如何使其工作?
ASPX:
<%@ Page Language="C#" MasterPageFile="~/Master.master" AutoEventWireup="true"
CodeFile="mypage.aspx.cs" Inherits="mypage" Title="mypage" EnableViewState="False" %>
...
<asp:DropDownList ID="ddl1" runat="server" OnSelectedIndexChanged="ddl1_Select" AutoPostBack="True"/>
ASPX.CS:
protected void Page_Load(object sender, EventArgs e)
{
ddl1.Items.Add("1");
ddl1.Items[0].Value = "1";
ddl1.Items.Add("2");
ddl1.Items[1].Value = "2";
ddl1.Items.Add("3");
ddl1.Items[2].Value = "3";
if (Session["NewSelection"] != null) // see note 1
{
string itemValue = Session["NewSelection"].ToString();
ddl1.SelectedIndex = ddl1.Items.IndexOf(ddl1.Items.FindByValue(itemValue));
Session["NewSelection"] = null; // see note 1
}
}
protected void DDL1_Select(object o, EventArgs e)
{
Session["NewSelection"] = ddl1.SelectedValue;
Page.Response.Redirect("mypage.aspx?test=" + Session["NewSelection"].ToString());
}
【问题讨论】:
标签: asp.net postback html-select autopostback selectedindexchanged