我有一个下拉式的填充数据从SQL服务器。DropDownList丢失索引后回发
我在Page_Init()
事件中动态地填充下拉列表。 根据值,选择一个ListItem。
现在的问题是,当我在下拉列表中选择另一个项目时,在回发后选择被重置为下拉列表中的第一项。
这这里是我的代码基本版本不工作:
ArrayList AD_Group_Members = ActiveDirectory.GetMemberOfGroup("AD-Group");
ArrayList ListMachines = SQLQuery.Read("Database", "SELECT idVM, RandomString, Computername, Owner, FROM VM ORDER BY Computername");
for (int i = 0; i < ListMachines.Count; i++)
{
String RandomString = ((Hashtable)ListMachines[i])["RandomString"].ToString();
String Owner = ((Hashtable)ListMachines[i])["Owner"].ToString();
DropDownList DropDownList_Owner = new DropDownList();
DropDownList_Owner.ID = "DropDownList_Owner_" + RandomString;
DropDownList_Owner.Width = Unit.Percentage(95);
DropDownList_Owner.AutoPostBack = true;
DropDownList_Owner.EnableViewState = true;
DropDownList_Owner.SelectedIndexChanged += DropDownList_Owner_SelectedIndexChanged;
Div_Test.Controls.Add(DropDownList_Owner);
for (int y = 0; y < AD_Group_Members.Count; y++)
{
ListItem ListItem = new ListItem();
ListItem.Value = Owner;
ListItem.Text = ((Hashtable)AD_Group_Members[y])["GivenName"].ToString() + " " + ((Hashtable)AD_Group_Members[y])["Surname"].ToString();
if (((Hashtable)AD_Group_Members[y])["Username"].ToString().Equals(Owner))
{
ListItem.Selected = true;
}
DropDownList_Owner.Items.Add(ListItem);
}
}
哪里是在我的代码的问题,它不工作,但例子。 在此先感谢
好吧,那帮了我,但现在我有以下问题: 在我将选定项目“用户A”更改为“用户B”后,SelectedIndexChanged事件仍然是“用户A”SelectedValue – Solaflex
引用您的填充功能并从您的问题中删除不必要的代码。 – Veer
我现在在我的真实代码中尝试了它,现在存在这样的问题,即在选定项目的更改后,所有项目都将消失,并且SelectedIndexChanged事件不会触发。请求澄清或建议改进。 – Solaflex