我在asp.net项目中遇到了下拉列表问题。经过详尽的检查后,我已将事情缩小到两个方案。在您回复之前,请尝试自己作为证据。 VS2010或VS2012 ASP.Net项目。我保证这不起作用。
我认为自己是一位经验丰富的.net开发人员,这样的代码对我来说通常都是非常微不足道的,但我对此绝对感到难过。
任何帮助将不胜感激
在我的default.aspx Page_Load 事件页面中,我有这段代码而没有别的
if (!IsPostBack)
{
cboDept1.DataSource = GetTeamGroups();
cboDept1.DataValueField = "Value";
cboDept1.DataTextField = "Text";
cboDept1.DataBind();
}
使用此版本的 GetTeamGroups 功能代码,下拉列表按预期工作,列表保留,我可以获得 SelectedItem 等,每次回发后都没有问题。
private List<ListItem> GetTeamGroups()
{
List<ListItem> oList = new List<ListItem>();
oList.Add(new ListItem("1", "1"));
oList.Add(new ListItem("2", "2"));
oList.Add(new ListItem("3", "3"));
oList.Add(new ListItem("4", "4"));
return oList;
}
这在我想要从函数(数据库或web服务)获取列表的地方不实用。但是这个版本的 GetTeamGroups 功能,每次回发都会重置下拉列表。我无法获得SelectedItem。 (PS。用于动态填充列表的代码并不重要,问题是相同的。似乎列表无法动态填充以使其正常工作)。
private List<ListItem> GetTeamGroups()
{
List<ListItem> oList = new List<ListItem>();
string[] sGroups = ConfigurationManager.AppSettings["Groups"].ToString().Split(';');
int iCount = 0;
foreach (string sGroup in sGroups)
{
oList.Add(new ListItem(sGroup, iCount.ToString()));
}
return oList;
}
我读过很多文章,建议观点可能有所帮助。控件或页面上的viewstate组合无法解决问题。该列表始终重置。
答案 0 :(得分:0)
New ListItem("Text","Value");
重复第二个函数中的值,需要将Count递增到foreach()循环中,