我有一个程序类,其属性为Id,ProgramName,ShortName和Code,在我的应用中
我有一个ASP DDL

<asp:DropDownList ID="DDLProgram" runat="server"
            OnSelectedIndexChanged ="OnDDLProgramChanged" AutoPostBack = "true">
    </asp:DropDownList>


我的OnDDLProgramChanged方法定义为

protected void OnDDLProgramChanged(object sender, EventArgs e)
        {
            List<CcProgramEntity> programEntities = GetAllPrograms();

            DDLProgram.DataSource = programEntities;
            DDLProgram.DataTextField = "Shortname";
            DDLProgram.DataValueField = "Id";

            //My Problem goes here
            string programCode = programEntities[DDLProgram.SelectedIndex].Code;
        }


我的清单正确获取了所有记录,已经检查了。但是每当我在DDL中更改一项时,所选索引都不会更改。所选索引仍然为零。因此,我无法获取其他项目的代码,但只能获取0索引的项目。

在这种情况下,有人可以帮助我吗?

最佳答案

您将再次在selectedIndex Change event中绑定数据,重新绑定后它将重置当前的SelectedIndex。您无需将数据重新绑定到SelectedIndex Change Event中的下拉列表中

应该像..

protected void OnDDLProgramChanged(object sender, EventArgs e)
    {

        string programCode = programEntities[DDLProgram.SelectedIndex].Code;
    }

10-04 10:38