Avatar billede agerbeck Nybegynder
16. september 2003 - 21:40 Der er 13 kommentarer og
1 løsning

Postback problem

Her kommer et lidt vanskeligt spørgsmål.

Jeg er ved at lave en server control (en form for TreeView control). Mit problem er følgende:
Har fået lavet et postback fra min control ved hjælp af GetPostBackEventReference metoden og den bliver også fanget som den skal og behandlet i RaisePostBackEvent metoden.
Det jeg gerne vil undgå er, at controllen, hver gang den laver et postback, gemmer den sidste side i browserens historie. Eksempel på hvad jeg mener kan ses her i microsofts tutorial om netop samme emne:

http://www.dotnetjunkies.com/quickstart/aspplus/samples/webforms/ctrlauth/composition/VB/Composition3.aspx

Her kan det ses, at hver gang man trykker på knappen og laver et postback kan man oppe i browseren trykke tilbage og komme tilbage til siden før man lavede postback.

Ved brug af microsofts TreeView control (se evt linket)

http://aspnet.4guysfromrolla.com/demos/FamilyTree-TreeView.aspx

kan det ses, at her bliver siden ikke gemt ved postback, her kan man ikke trykke tilbage og ydermere er der ikke den irreterende klik lyd som forekommer i det andet eksempel ved postback. Ved grundig gennemgang af kildekoden er jeg 99% sikker på at clientside skriptet er det samme, så det må blive klaret server side?

Er der nogen der ved hvordan microsoft "kamuflerer" deres postbacks således at de ikke bliver opfattet på samme måde af browseren??

Mvh
Christian
Avatar billede ubernerd Nybegynder
17. september 2003 - 09:48 #1
Ja de bruger noget de kalder SmartNavigation, men det er noget crap der sjældent virker ret godt...

Det er noget med at de pakker siden i et frame der så sørger alt navigering.

Jeg har meget dårligt erfaringer med det, så prøv at finde en anden metode end deres.
Avatar billede -master-d- Nybegynder
18. september 2003 - 20:47 #2
Det lyder helt sikkert som et spændende projekt du har gang i der.
Ville du have noget imod at enten smide noget af koden omkring selve postback-eventen eller i det mindste beskrive hvordan du har gjort?
Avatar billede agerbeck Nybegynder
18. september 2003 - 22:02 #3
Jep det er ret spændende. Når jeg finder ud af noget videre skal jeg nok poste koden til spørgsmålet her (eller i det mindste ideerne til hvordan det fungerer).
Avatar billede -master-d- Nybegynder
18. september 2003 - 22:14 #4
Det var ikke din sourcecode jeg var ude efter, men for at kunne hjælpe dig er det oftest nemmest hvis man kan se hvordan det specifikt ser ud i det område at din kode.
Avatar billede -master-d- Nybegynder
26. september 2003 - 23:09 #5
Kom du nogensinde videre med dit problem ?
Avatar billede agerbeck Nybegynder
27. september 2003 - 14:03 #6
Nej jeg kigger stadig lidt på det... Jeg har lavet min server control som "ren" server kontrol dvs. med postback hver gang noget skal ændres. Jeg tror dog at det jeg skal bruge har noget at gøre med "webservice behavior" (http://msdn.microsoft.com/library/default.asp?url=/workshop/author/webservice/overview.asp). Har luret lidt på microsofts og 3. partiers TreeView kontroller og set at meget bliver udført clientside ved hjælp af htc filer. Der sker f.eks. ikke et postback når man skal udvide (expande) microsofts treeview.

Har desuden også fået præciseret mit problem lidt:
Det jeg vil er at "refreshe" en del af sidens indhold uden at resten af siden bliver "refreshet", og den funktionalitet opnår jeg så vidt jeg kan forstå ved at benytte den her "webservice behavior".

-master-d-: Synes dog det virker avanceret, så hvis du kender noget til metoden lytter jeg gerne...
Avatar billede -master-d- Nybegynder
27. september 2003 - 14:41 #7
agerbeck >> jeg kender umiddelbart ikke lige løsningen, men jeg synes det lyder spændende hvis man kan skjule et postback, så jeg vælger at bore lidt i dybden efter det.

Jeg skal nok sige til hvis jeg finder noget som du kan bruge.
Avatar billede -master-d- Nybegynder
27. september 2003 - 14:59 #8
Hvordan mener du at noget af sidens indhold skal "refreshe", hvad for noget indhold snakker vi om her ?
Avatar billede agerbeck Nybegynder
27. september 2003 - 15:15 #9
Jeg mener at hvis man har f.eks en treeview kontrol på sin side, så er det kun den der bliver refreshet og ikke hele siden. Dvs. det er kun det der bliver ændret der skal refreshes mens det der ikke ændres ikke behøver refreshes. Det forekommer mig også lidt kryptisk... Jeg vil tro det svarer lidt til at lave et activeX objekt i gammeldags asp.
Avatar billede -master-d- Nybegynder
27. september 2003 - 15:51 #10
okay, sådan.. jo så er jeg med.

Jeg tror godt at du kan bruge webservice behavior til dette, men giv mig lige lidt tid, så skal jeg se om jeg ikke kan lave et eksempel til dig, som du så kan implementere i din webservice.
Avatar billede -master-d- Nybegynder
27. september 2003 - 17:13 #11
Hvordan refererer du til din postback event ? via OnClick eller OnLoad eller hvordan ?

Jeg tror at jeg muligvis har fundet noget som kan virke og det rimelig simpelt.
Avatar billede agerbeck Nybegynder
27. september 2003 - 17:42 #12
Ok. Min kontrol er bygget op af to klasser. En klasse der hedder TreeView som er selve webcontrollen, og en klasse der hedder TreeNode der indeholder alt om en "node" i træet. I min TreeNode klasses render funktion, render jeg et anker (<a>) med OnClick attributen "GetPostBackClientHyperlink(tv, "expand,"+this.UniqueID)". Det metoden gør er at den laver et postback event med event argumenterne expand + nodens id. I min TreeView klasse fanger jeg denne event og afkoder eventargumentet i RaisePostBackEvent metoden. Her finder jeg den node der er blevet klikket på vha. det unikke id. Herefter sætter jeg en "property" som jeg f.eks. kalder "expanded" til sand. Når TreeView kontrollen herefter render, vil den render hver eneste node, og når den valgte node skal renderes vil den blive rendered som expanded node og dens "children" vil dermed også blive rendered. (Håber det var tydeligt)

Var det det du mente? Måske var det korte svar: jeg referer til min postback event via OnClick (tror jeg).
Avatar billede -master-d- Nybegynder
27. september 2003 - 19:43 #13
Jeg søgte egentlig nok den lange version så det var fint nok, men det jeg havde tænkt mig passer nok ikke helt ind i den måde din control virker på..
Men jeg leder lige lidt videre.
Avatar billede agerbeck Nybegynder
14. oktober 2003 - 11:43 #14
Lukker spørgsmålet...
Fandt en anden løsning, ved at overføre en del af funktionaliteten til clientside.
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