我用几个项目填充下拉列表。当用户选择其中一个项目时,将填充第二个下拉列表。
当用户点击第一个下拉列表中的“x”按钮时,必须清除这两个下拉列表。第一个下拉列表会自动清除,我使用“dropdown.Items.Clear()”清除第二个下拉列表。
当我再次加载第一个下拉列表的数据时,第二个下拉列表不会更新。
这是代码:
protected void DropDownDiagStati_SelectedIndexChanged(object sender, EventArgs e)
{
int selectedIndex = this.DropDownDiagStati.SelectedIndex;
PopulateDDLStates(selectedIndex);
}
private void PopulateDDLStates(int selectedIndex)
{
// Ottengo i diagrammi di stato in sessione
ArrayList diagrammiStato = Session["stateDiagrams"] as ArrayList;
if(selectedIndex > 0)
{
// Ottengo il diagramma di stato selezionato
DocsPaWR.DiagrammaStato currDiagStato = (DocsPaWR.DiagrammaStato)diagrammiStato[selectedIndex - 1];
// Ottengo gli stati del diagramma di stato selezionato
Stato[] stati = currDiagStato.STATI;
for(int i = 0; i < stati.Length; i++)
{
ListItem item = new ListItem();
item.Value = Convert.ToString(stati[i].SYSTEM_ID);
item.Text = stati[i].DESCRIZIONE;
this.DropDownStati.Items.Add(item);
this.UpPanelStatiDdl.Update();
}
}
else
{
this.DropDownStati.Items.Clear();
this.UpPanelStatiDdl.Update();
}
}
我只看到第二个下拉列表中的旧值,我无法选择它。
答案 0 :(得分:0)
您需要删除更新窗格,或者您可以将数据源设置为下拉列表。
ddl1.datasource = DataSource;
ddl1.DataTextField = "name";
ddl1.DataValueField = "id";
ddl1.DataBind();
答案 1 :(得分:0)
问题是clear函数还删除了默认的空Item。我解决了创建一个私有方法,删除所有项目,但第一个。