我有一个程序类,其属性为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;
}