Frågan 26 sep. 2007 19:50 #1 Har ett skumt problem! :q
Har en FormView med en dropdownlist i.
I FormView_DataBound har jag denna kod:
DropDownList positionID = (DropDownList)FormView1.FindControl("PositionID");
positionID.SelectedValue = campaign.PositionID.ToString();
Jag sätter alltså SelectedValue till ett värde och det visas också i listen på sidan. Fine!
Men:
Har också denna kod i Page_PreRender:
DropDownList positionID = (DropDownList)FormView1.FindControl("PositionID");
Response.Write(positionID.SelectedValue.ToString());
Då skriver den inte ut någonting! Hur tusan är det möjligt? :x
Kollar jag i htmlkoden som genererats så är ett listItem selectat!
Varför kommer jag inte åt SelectedValue i Page_PreRender?
E erka Medlem sedan dec. 1999 6 522 inlägg För det triggas efter det? Eller du binder om datat så du inte får något valt värde?
Jag hajjar inte! :(
Vad menar du med triggas efter?
Datat binds inte om och det borde väl heller inte spela någon roll då ett val i listen är selectat oavsett om den binds om eller ej. Så det värdet borde jag väl komma åt!
htmlkod som genererats
<select name="ctl00$ContentPlaceHolder1$FormView1$PositionID" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$FormView1$PositionID\',\'\')', 0)" id="ctl00_ContentPlaceHolder1_FormView1_PositionID">
<option value="aaa">asd</option>
<option value="sss">sdf</option>
<option selected="selected" value="ddd">fgh</option>
<option value="fff">ghj</option>
</select>
När jag tog bort min objectdatasource som binder ddl:en och binder "för hand" istället i codebehind så funkar det! :q
Förklar det ni, om ni kan! :)