我在代码隐藏中生成下拉列表,无法让selectedindexchanged事件自动触发。当直接放入ASPX页面时它工作正常,但我需要它在代码隐藏中。ASP.NET下拉列表Codebehind vs ASPX页面
这不起作用:
var deptList = new DropDownList
{
ID = "deptList",
DataSource = departments,
DataTextField = "deptname",
DataValueField = "deptid",
AutoPostBack = true,
EnableViewState = true
};
deptList.SelectedIndexChanged += new EventHandler(deptList_SelectedIndexChanged);
deptList.DataSource = departments;
deptList.DataTextField = "deptname";
deptList.DataValueField = "deptid";
if (!IsPostBack)
deptList.DataBind();
deptList.Items.Insert(0, new ListItem("---Select Department---", string.Empty));
writer.Write("Select a department: ");
deptList.RenderControl(writer);
但这个工程:
<asp:DropDownList ID="deptList" AutoPostBack="true" runat="server" OnSelectedIndexChanged="deptList_SelectedIndexChanged"></asp:DropDownList>
因此,因为我将它呈现给HTMLTexWriter,我会将它呈现给Init还是Load? – Alex 2010-02-17 16:52:44
我把整个代码块放到page_init中,并且什么也没有发生 – Alex 2010-02-17 17:39:27
比较Firebug或IE开发控制台中工作实现(标记)和非工作(代码)之间的标记。有些不同。 – 2010-02-17 20:34:58