Hej Titta på AutoPostback på kontrollen och sätt den till False Japp om jag sätter mina dropdownlister autopostback till false så måste jag ju på något sätt sen spara ner resultatet tex genom att jag trycker på en knapp. När jag trycker på knappen så binds ju kontrollerna igen och då har jag förlorat resultatet på de ändrade värdena igen Prova detta! I Page_Load Hmm tror det blir lite konstigt det här. Antingen så förstår ni inte riktigt eller så är jag dålig på att förklara. Den ska ju se likadan ut, även efter en postback. Alternativet är att ropa på en subrutin och sist i den suben så anropar du en funktion som på nytt loopar upp dropdown Om jag förstår det rätt så genererar du dina DropDownList dynamiskt utan statisk referens på ASPX sidan...? Då måste du lägga till kontrollen även om det är en PostBack. Du ska dock inte sätta vilket värde som skall vara valt i PostBack.moment 22, hur ska jag göra
Jag loopar ut dropdownlistboxar och sen ska man kunna ändra värdet av dessa och då spara ner värdet i databasen. Problemet är att när jag ändrar värdet så laddas ju sidan om och dropdownlistboxarna loopas ut igen med det gamla värdet.
Hur ska jag göra för att kunna få detta att funka, blir ju lite så att jag aldrig får rätt värde när jag har autopostat sidan.Sv:moment 22, hur ska jag göra
Då skall du inte få Postback att ske och du kan ändra alla dina droplistor och sedan posta datat.Sv: moment 22, hur ska jag göra
Sv:moment 22, hur ska jag göra
VB:
<code>
Sub Page_Load(ByVal s As Object, ByVal e As EventArgs)
If Not Page.IsPostBack Then
Loop
End If
End Sub
</code>
C#:
<code>
void Page_Load(Object s, EventArgs e)
{
if (!IsPostBack)
{
Loop
}
}
</code>Sv: moment 22, hur ska jag göra
If Not Page.IsPostBack Then
BindDropDownControls
End If
Jag hajjade inte riktigt Hans Loop...
Anropa en funktion som binder dina kontroller enbart när sidan laddas första gången, och inte vid PostBack
Sv: moment 22, hur ska jag göra
Om jag kör
if(!isPostBack)
{
loopa ut mina dropdown
}
nu kommer de ju bara att loopas ut första gången. Om jag sen ändrar värdena och trycker på en spara knapp så autopostas sidan och mina dropdownlister finns inte längre på sidan. När jag sen kommer in i min btnSave knapp och ska kolla vilka värde användaren har ändrat till så finns ju inte dropdownlisterna kvar på sidan eftersom de bara binds första gången man kommer in.Sv:moment 22, hur ska jag göra
Sv:moment 22, hur ska jag göra
Testa;
1. Initiera kontrollen.
2. Fyll den med listitems.
3. Se till så att den har ViewState enabled...
[theControl].EnableViewState = true;
4. Sätt ursprungligt värde, bara första gången...
if(!IsPostBack)
{
[theControl].SelectedValue = [whatever]
}
5. Lägg till kontrollen på sidan.
Om du kör AutoPostBack och inte har kopplat nån action till det så kan du sno åt dig det nya värdet genom att överladda OnPreRender och ta det där. Bättre är väl dock att ha en submit-knapp.
Alternativet till hela det här konceptet är ju att du jobbar med HttpContext.Current.Request.Form[x] á la vanliga ASP. Men det är ju en massa onödigt dubbelarbete.