SQL 서버의 데이터로 채울 드롭 다운이 있습니다.DropDownList가 PostBack 후에 인덱스를 잃습니다.
나는 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);
}
}
을 :
여기이 작동하지 않습니다 내 코드의 기본 버전입니다. 미리 감사드립니다.
확인 : 내가 SelectedValue – Solaflex
로 선택한 항목 "사용자 A"는의 SelectedIndexChanged 이벤트에서 "사용자 B"에하는 것은 여전히 "사용자 A"입니다 변경 후 인용하여 채우기 함수에서 제거하고 질문에서 불필요한 코드를 제거하십시오. – Veer
이제는 실제 코드에서 시도해 보았습니다. 이제는 선택한 항목의 변경 후 모든 항목이 떨어져 있고 SelectedIndexChanged 이벤트가 트리거되지 않습니다. 문제가 해결되었으므로 개선이 필요합니다. – Solaflex