Avatar billede casualty Nybegynder
17. oktober 2004 - 17:05 Der er 12 kommentarer og
1 løsning

Hvordan med postback?

Jeg har lavet noget design til en kunde hvor en bruger på hans hjemmeside kan udfylde nogle forskellige ting.

Til at starte med skal brugeren svare ja/nej til et spørgsmål, og herefter stilles videre til en ny side hvor inputtet er forskelligt alt efter om der blev svaret ja eller nej på den første side.

Her er problemet at .NET lægger op til at man SKAL bruge postback, hvilket jeg selvfølgelig derfor gerne vil, da der må være en smart idé ved det.

Mit spørgsmål går på: Hvad gør man i .NET? Før havde jeg mange sider der postede til hinanden men skal det hele ligge i samme side? Er det et spørgsmål om at sætte visible=true/false på de controls der er aktuelle i forhold til hvor man er i en registreringsprocess. Er der noget smart .NET kan tilbyde som jeg har overset?

Mvh Casualty
Avatar billede snepnet Nybegynder
17. oktober 2004 - 17:13 #1
huhada... det her kan besvares på rigtig mange måder, men kan jeg ikke få dig til at kigge denne her igennem.
jeg har lagt et forslag til en wizardstruktur derud, og det kunne måske være en løsning for dig.
http://www.eksperten.dk/spm/519579

der er ikke nogen problemer i, at du bare sætter visible til true/false, men det bliver meget hurtigt noget værre gnidder.

selvom du ikke kan bruge linket til noget, så spørg bare løs her... jeg vil meget gerne hjælpe med det.

mvh
Avatar billede casualty Nybegynder
17. oktober 2004 - 17:30 #2
Der er ikke så mange trin i min registrering, så jeg kunne forestille mig at jeg ville benytte placeholders til de aktuelle control objekter.

Dette leder dog til to nye spørgsmål...
#1
Hvordan ved jeg hvor i registreringsprocessen jeg er (så jeg ved hvilken placeholder der skal vises)? Der er jo kun én metode:
if ( IsPostBack ) {
}
Hvad bør man sende med rundt for at afgøre hvor i processen man er?

2#
Hvis jeg har en 6 controls på én side og eksempelvis 3 placeholders med 2 controls i hver, så ser det ikke så pænt ud at når man sætter en placeholder til visible=false,
Så står de andre controls stadig "under" de usynlige controls. Kan man lægge det hele oven i hinanden, eller kan man få dem til at lægge sig øverst når de bliver vist?

Mvh Casualty
Avatar billede snepnet Nybegynder
17. oktober 2004 - 17:45 #3
Hej igen :o)

#1
Der er et par forskellige muligheder her :
a) ViewState
Opret f.eks. en "viewstate-variabel" sådan her :
(for nemheds skyld har jeg angivet din tilstand som en int)
protected int CurrentMode
{
  get{return (object)ViewState["CURRENTMODE"] != null ? (int)ViewState["CURRENTMODE"] : 0;}
  set{ViewState["CURRENTMODE"] = value;}
}

Så kan du tilgå den i koden på helt normal vis :
this.CurrentMode = 1;

b) Du kan skrive den i session
Kan du bare gøre som a)... bare skift ViewState ud med Session.

c) Brug querystring

#2
Med hensyn til placeringen så sætter VS (hvis det er det du bruger som udviklingsmiljø) pr. default
<body MS_POSITIONING="GridLayout">
Men det kan du bare fjerne så der bare står :
<body>

Så kan du godt nok ikke placere frit mere, men til gengæld tilpasser siden sid i forhold til det der er på den.

Desuden kan du også sagtens benytte den "gammeldags" måde, hvor du laver en tabel på siden, og indsætter dine paneler mv. i de forskellige celler.
I den forbindelse kan du sætte den enkelte celle til runat="server", og på den måde tilgå den programmatisk, hvis der skulle være behov for det.

håber du kunne bruge det - og med fare for at gentage mig selv... spørg endelig løs :o)

mvh
Avatar billede casualty Nybegynder
17. oktober 2004 - 19:04 #4
Ok... Hvad er det smarte ved at .NET er bygget således at den tvinger en til kun at poste til den samme side? Det kan man jo også gøre med enhver anden web teknologi php/asp(vb). Der må være en eller anden smart feature som jeg har overset.
Avatar billede casualty Nybegynder
17. oktober 2004 - 19:05 #5
Jeg kan godt se at det er smart at poste til den samme side, for på den måde at centralisere logikken.
Avatar billede snepnet Nybegynder
17. oktober 2004 - 21:44 #6
der er meget lidt tvang i asp.net.... og i forhold til hvor meget der er tilført synes jeg egentlig at det er ufatteligt er der er så lidt tvang som der er.

du kan have alle de forms du vil på en side, og de kan hver i sær poste på den måde du selv bestemmer, men.... du kan kun have én serverside form (altså en form angivet med <form id="SomeForm" runat="server">).

mht. til den smarte feature...
hvis du skriver lidt mere om hvad det er du vil opnå - så skal jeg sende dig et asp.net eksempel på det... specielt omkring på hvilken måde du ønsker at "ramme" en anden klasse på serveren end den du har genereret formen fra.
(du har muligheden for at ramme alt det kode du vil når du først er "tilbage" på serveren).

såhh.... skriv hvad du mangler, og så skal jeg smide et eksempel efter dig :o)

mvh
Avatar billede snepnet Nybegynder
17. oktober 2004 - 22:14 #7
Det er dog ikke altid helt uproblematisk (der er visse klamme overraskelser engang imellem)... specielt ikke hvis du dynamisk genererer diverse kontroller som du pr. event (som f.eks. et knaptryk) ønsker at indsætte på siden (sådan lidt alá en wizard... eller en "selvudviklende form").

hvis du skal gnaske dig rigtig grundigt ind i det, er det en rigtig god idé hvis du kigger på page og control lifecycle på msdn (hvis du ikke lige kan hitte det siger du bare til... nej vent....  jeg finder lige nogle links).

.
.
.

her er en god en:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/aspnet-pageobjectmodel.asp

og control lifecycle :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconcontrolexecutionlifecycle.asp
(din form er også en kontrol).

hvis det ikke siger dig en pind (det sagde ikke mig en fis første gang jeg så det), så vil jeg gerne prøve at uddybe det, men jeg tror det er federe hvis vi strikker et eller andet mere konkret sammen herude.
(f.eks. noget du kan bruge til noget ;o)

hold dig munter :o)
mvh

(hvad har du normalt udviklet på... har du normalt arbejdet i asp, php eller ?)
Avatar billede snepnet Nybegynder
19. oktober 2004 - 21:24 #8
hej casualty - hvordan går det med det ?
bare spørg løs hvis der er noget... jeg sidder ved klaveret her noget tid endnu :o)
mvh
Avatar billede casualty Nybegynder
19. oktober 2004 - 22:16 #9
Hej undskyld jeg ikke har svaret, men jeg sidder med hovedet begravet i kode og dokumentation. Jeg er i gang med min hoveopgave som datamatiker.
Det var en rigtig god hjælp du gav mig :) Tak for det...

Jeg har før udviklet en del jsp og også asp(vb)... Men min force (det jeg er opflasket med) er Java.

Jeg er kommet så langt så jeg har indelt forskellige grupper af mine Controls i PlaceHolders, og ellers har jeg lavet hjælpemetoder der enabler/disabler grupper af controls. Med hensyn til at finde ud af hvor i sin registreringsprocess brugeren er, har jeg følt at meget af det har givet sig selv, da de forskellige postbacks er blevet aktiveret af forskellige buttons. derved har jeg kunne lægge enable(true/false)/PlaceHolders.visible(true/false) samt konkret logik i forlængelse af de forskellige knappers events. Lyder det som en ok løsning?

Mvh Casualty
Avatar billede casualty Nybegynder
19. oktober 2004 - 22:20 #10
Med hensyn til de links du har lagt ud til mig, så har jeg ikke nået at læse dem endnu, men det vil jeg. Både af nysgerrighed, men lige så meget for at styrke min konkrete viden før eksamen
Avatar billede snepnet Nybegynder
19. oktober 2004 - 22:32 #11
Hej igen... nå den store på opgaveskrivning. det kan jo godt trække tænder ud - hvad er dit emne ?

Den med dine placeholders og visible true/false er en meget brugt løsning, som er helt fin.
Der kan være en risiko for, at man ender op med nogle lidt store og uoverskuelige filer, men hvis der kommer et vedligeholdelsesproblem i den forbindelse kan man jo gå igang med at smide nogle af kontrolarrangementerne ind i nogle user-/customcontrols, og få lavet lidt indpakning på den måde.

jeg håber du får lavet et fedt projekt (og vil som sagt gerne høre hvad det er), og at du få det lavet til tiden :o)
(jeg var selv altid færdig i sidste sekund med den slags).

Skriv endelig hvis jeg kan hjælpe med noget.

Mvh
(du får også lige et svar hvis du vil lukke her :o)
Avatar billede casualty Nybegynder
26. oktober 2004 - 20:23 #12
Min hovedopgave er, at jeg i samarbejde med to andre, skal lave en større udvidelse af et stort dansk firmas webdel, således at de (fyfyfy) kan tracke deres internetbrugere en hel del bedre end de kan idag. Det er utrolig fedt at komme en del rundt i (ASP).Net...(Jeg er vant til det gamle asp(vb) samt JSP), men der er jo også en stor del af projektet der består af dokumentation, metode samt process.
Avatar billede snepnet Nybegynder
26. oktober 2004 - 20:32 #13
det lyder da fedt.... (selvom om der altid går lidt vel meget tid på docs mv. når det er et afsluttende projekt, men sådan er det jo).
held og lykke med det !
mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester