Jag har ett problem som jag trodde jag skulle kunna lösa själv.. nu verkar det svårare än jag trodde.Dynamiska dropdowns och postback
Det är så att jag gör en applikation där man ska kunna hantera olika huvudartiklar och dess underartiklar.
Varje artikel har 0 eller flera egenskaper såsom storlek, färg o.s.v.
Vilka egenskaper den har beror på vad som är inställt på huvudartikeln.
För att ändra detta så ser man en lista med huvudartikeln överst och alla underartiklar därefter. Om man ändrar egenskapen "Färg" på huvudartikeln till säg... "Storlek" så ska alla dropdowns i kolumnen för den egenskapen ändras på alla artiklar. So far so good. Man får upp nya listor med storlekar istället för färger.
Det är här problemet uppstår... När jag sedan försöker spara till databasen så återställs värdet till det första i listan ("inget valt", med värde 0).
Här har jag testat två lösningar. Det första jag gjorde var att vid SelectedIndexChanged anropa en metod som rensa och fyllde på listorna med nya värden. Felet med detta antar jag är att när jag postar tillbaka sidan vid sparningen så vet inte .NET ett dugg om vad jag genererade i de nya listorna när jag bytte index.
Därför gjorde jag om utritningen av listorna från första början så att underartiklarnas listor är baserade på huvudartikelns lista. Till min besvikelse så hände det inget förän jag laddade artiklarnas listor i LoadComplete... och då körs click-eventet på sparaknappen INNAN det finns något i listorna. Jag vet ärligt talat inte vad jag ska ta mig till. Någon som har några förslag på lösning på detta problem?
EDIT: Kom på hur det kunde göras. Anropade den här metoden
Public Shared Sub CheckPostData(ByVal page As Web.UI.Page, ByVal _controls As ControlCollection)
If page.IsPostBack Then
For Each ctr As Control In _controls
Dim hnd As IPostBackDataHandler = TryCast(ctr, IPostBackDataHandler)
If hnd IsNot Nothing Then
hnd.LoadPostData(ctr.UniqueID, page.Request.Form)
End If
If ctr.HasControls() Then
CheckPostData(page, ctr.Controls)
End If
Next
End If
End Sub