Jag jobbar med ett formulär där olika textboxar ska finnas beroende på vad användaren gör för val. Men samtidigt vill jag att alla värden i textboxaran behålls hela tiden. Det smidigaste sättet är att du skapar dina kontroller (textboxar) dynamiskt. Men det löser väl inte problemet med att det blir luckor i formuläret...eller? Jo absolut. Om en kontroll inte finns så skapar den inga luckor. Ok nu har jag löst det Så bra. Det beror ju helt på komplexiteten på applikationen.Kollapsande formulär-layout
Min lösning just nu är att jag helt enkelt döljer/visar textboxarna beroende på användarens val. Problemet med denna lösning är att det (förutom att det är ganska osmidigt) blir stora luckor i formuläret där de dolda textboxarna finns.
Finns det något bra sätt att få formuläret att "kollapsa" så att det inte blir några luckor i formuläret?
(funderar själv på nån lösning med nån tabell, datagrid eller nåt, och att man då döljer hela rader som innehåller både textboxar och labels)
Så här ser formuläret ut nu:
http://test.raxxa.se/offertform.aspxSv: Kollapsande formulär-layout
Då kan du via postbacken behålla värderna och textboxarna syns ej.Sv:Kollapsande formulär-layout
Sv: Kollapsande formulär-layout
Du skapar alltså kontrollerna i code-behind.
Du går tillväga ungefär så här.
Jag googlade på create dynamic controls .net och fick upp detta:
http://aspnet.4guysfromrolla.com/articles/081402-1.aspx
- skapa placeholders, asp-tabeller på sidan där du vill att de olika kontrollerna ska ligga.
Då kan du specificera vart du vill att kontroller ska ligga.
- Sedan skapar du kontrollerna vid något event, t.ex. page-load eller knapptryckning.
TextBox txtInfo = new TextBox();
txtInfo.ID = "idInfo";
- Du avslutar med att placera kontrollen på
ett förälderobjekt, t.ex. placeholderName.Controls.Add(TextBox)
Jag hoppas att det ger lite hjälp i alla fall.Sv:Kollapsande formulär-layout
Behövde inte skapa kontrollerna dynamiskt...Placerade alla kontroller inom en asp:table och såg till att de inte hade någon absolut positionering...Sen va det bara att sätta visible = false på de rader som jag ville dölja...så blev det inga luckor i formuläret
Tack ändå Robert
(provade det där med att skapa kontrollerna dynamiskt och lägga dem i placeholders och det funkade ju bra men ovanstående lösning funkade ännu bättre för mig)Sv: Kollapsande formulär-layout
Dynamiska kontroller fungerar alltid :-D