Sol*_*lex 0 c# asp.net viewstate postback drop-down-menu
我有一个下拉列表,我从SQL服务器填充数据.
我在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);
}
}
Run Code Online (Sandbox Code Playgroud)
我的代码中的问题在哪里,它不起作用而是示例.预先感谢
您必须在pageload下填充此条件下的下拉列表.因为在每个帖子上都会再次填充您的ddl并丢失其选定的索引.
if (!IsPostBack)
{
//PopulateYourDDL here
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3903 次 |
| 最近记录: |