У меня есть два раскрывающихся списка, где один заполняется на странице загрузки, а другой должен заполняться только при выборе значения в первом. Первый выпадающий список определяется как:Динамическое заполнение выпадающего списка на основе выбранного значения в другом выпадающем списке
<asp:DropDownList ID = "base_ddl" runat="server" ToolTip="Base" OnSelectedIndexChanged = "BaseSelected">
// snip...
</asp:DropDownList>
Затем список второй выпадающий (secondary_ddl
) заполняется в OnSelectedIndexChanged
методом, BaseSelected
.
public void BaseSelected(object sender, EventArgs e)
{
if (base_ddl.SelectedValue == "-1")
{
secondary_ddl.Visible = false;
}
else
{
secondary_ddl.Items.Clear();
// extract information to populate dropdown here
// snip.
IList<InfoContainer> info = getInfoBasedOnSelected(base_ddl.Value);
foreach (InfoContainer i in info)
{
secondary_ddl.Items.Add(new ListItem(i.name, i.value));
}
}
}
Это не работает, что приводит к этому вопросу: почему? Как я могу динамически обновлять это выпадающее меню из функции OnSelectedIndexChanged
для другого выпадающего списка?
первую очередь вам не нужно DataBind на втором раскрывающемся списке, как вы добавляете детали к ним. и проверить свой список, имеет ли он какую-то ценность? – Zaki
@Samim Я так не думал, что было добавлено при отладке. Я уверен, что элементы добавляются в список (вышли и увидели их). Удалил эту строку кода, чтобы избежать этого, спасибо. – Jim
Что означает «Это не работает»? Что вы ожидаете и что видите? В первом раскрывающемся списке AutoPostBack установлено значение true? – Igor