Hej,DropDownList problem i Web Part.
Jag har två DropDownListor, Varje gång web parten körs DDL1 innehåller Types (Books, Cars, ....) och DDL2 är osynlig när man väljer en Type i DDL1, då DDL2 blir synlig och innehåller värdena för typen (t.ex. om man väljer Cars i DDL1 då innehåller DDL2 Volvo, Saab, ...).
Problemet: DDL2 ligger alltid ett steg före. När jag väljer Cars i DDL1 , innehåller DDL2 bara " -- välj --" inget mer.
om man klickar på en knapp eller nåt händelse för att web parten laddas då DDL2 innehåller rätt värde.
Jag har experimenterat med olika händlse alltså DLL1.SelectedIndexChanged, Load, DataBind ... eller för DDL2 men fick jag fel värde eller det inte gick följande är närmaste vad jag vill ha med övanstående bugg.
här min kod:
protected override void CreateChildControls()
{
DDL1 = new DropDownList();
DDL1.ID = "DDL1";
DDL1.DataBound += new EventHandler(DDL1_DataBound);
DDL1.SelectedIndexChanged += new EventHandler(DDL1_Changed);
DDL1.DataSource = GetTypes(); //retunerar types från DB.
DDL1.DataTextField = "type";
DDL1.DataValueField = "type";
DDL1.DataBind();
DDL1.AutoPostBack = true;
Controls.Add(DDL1);
DDL2 = new DropDownList();
DDL2.ID = "DDL2";
DDL2.Visible = false;
//DDL2.Load += new EventHandler(DDL2_Load);
DDL2.DataBound += new EventHandler(DDL2_DataBound);
DDL2.SelectedIndexChanged += new EventHandler(DDL2_Changed);
DDL2.DataSource = GetValues(DDL1.SelectedValue);
DDL2.DataTextField = "typevalue";
DDL2.DataValueField = "taxonomyid";
DDL2.DataBind();
DDL2.AutoPostBack = true;
Controls.Add(DDL2);
}
protected void DDL1_DataBound(object sender, EventArgs e)
{
DDL1.Items.Insert(0, new ListItem("-- Select Type --"));
}
protected void DDL1_Changed(object sender, EventArgs e)
{
DDL2.Visible = true;
}
protected void DDL2_DataBound(object sender, EventArgs e)
{
string ValueName = "-- Select " + DDL1.SelectedValue.ToString() + " --";
DDL2.Items.Insert(0, new ListItem(ValueName));
}