Avatar billede Slettet bruger
11. september 2007 - 21:30 Der er 16 kommentarer og
1 løsning

Ajax, Updatepanel

Jeg har følgende problem.

Jeg har en side med flere updatepanels som hver har deres websusercontrol. Når jeg klikker på en knap for at udfører en handling i en af webusercontrol udføres min event kun hver anden gang. Updatepanelet bliver opdateret men event køres bare ikke.
Avatar billede neoman Novice
11. september 2007 - 21:32 #1
nogle af dine kontroller mangler sikkert id'er - læs her:http://www.eksperten.dk/artikler/1103
Avatar billede Slettet bruger
11. september 2007 - 21:44 #2
jo tak, den har jeg læst. Men hvorfor er det kun hver anden gang det er et problem.

Jeg har tjekket idér, jeg kan ikke finde nogle kontroller der mangler id
Avatar billede Slettet bruger
11. september 2007 - 21:47 #3
jeg har en fornemmelse af at uniqueid ændre sig
Avatar billede neoman Novice
11. september 2007 - 21:50 #4
ved manglende id'er så er det når tingene ikke loades i 100% samme rækkefølge ved postback, så kan eventen trigget på klienten ikke finde den knap som triggede den, medmindre knappen har samme ID - og det har den kun hvis knappen og alle dens forældre/oldeforældre har fået explicit id tilskrevet. Hvis man overlader det til frameworket, så kan frameworket kun gøre det det ser, og tage tingene i rækkefølge.

Du kunne pille din usercontrol ud af updatepanelet, og i sourcen på klienten se hvilke ClientId'er alle de relevante kontroller som din userkontrol består af har før og efter postback - hvis der er forskel,  så er det dér der skal sættes ind. Den mest relevante kontrol er nok den som trigger dit update event.
Avatar billede Slettet bruger
11. september 2007 - 21:59 #5
Hvis du id ændres, hvordan kan jeg så håndtere eventen?
Avatar billede neoman Novice
11. september 2007 - 22:02 #6
hvis den ændres ,så kan du se på den hvor du selv skal tilskrive id ...enten mangler den kontrol som trigger eventen et specifikt id, eller den kontrol som den kontrol sidder i, eller  dens container osv ...

det kan man se på ændringen i ClientID, som jo er stykker sammen af kontrollens eget ID, og som prefix har containerens ID, og dette har som prefix containerens contaainers ID osv
Avatar billede neoman Novice
11. september 2007 - 22:03 #7
hvis du har en ctlXX som del af ClientID, så er det på det niveau at man skal tilskrive ID
Avatar billede Slettet bruger
11. september 2007 - 22:06 #8
Jeg har lavet lidt debug.. og jeg kan se postbackscript ændre id fra TabContainer$TabPanelUsers$Userlist$RepeaterUserlist til TabContainer$TabPanelUsers$Userlist$0$RepeaterUserlist

Der er altså kommet et $0 imellem min Userlist (webcontrol) og min Repeater

og det er når 0 er med det ikke virker
Avatar billede neoman Novice
11. september 2007 - 22:10 #9
ok - så er det jo der det går galt. Det er ret underligt, at der tilføjes en ekstra "layer" - løsningen må være begravet i din kode et sted.

Laver du noget halløj med at sætte noget .Visible=True fra .Visible=False, eller omrokere noget i din usercontrol efter postback ?
Avatar billede neoman Novice
11. september 2007 - 22:12 #10
Et eller andet ændres jo mellem din Userlist og din RepeaterUserlist
Avatar billede Slettet bruger
11. september 2007 - 22:12 #11
og det ser ud til at 0 ændres til 1 og 2 og 3 hver anden gang.
Avatar billede neoman Novice
11. september 2007 - 22:16 #12
Så er det vel i Userlist der sker et eller andet - kig på hvilken kontrol repeateren sidder i- det er derfra dette her underlige "0" stemmer
Avatar billede neoman Novice
11. september 2007 - 22:17 #13
eller "stammer" :-)
Avatar billede Slettet bruger
11. september 2007 - 22:20 #14
jubii jeg har fundet ud af det.....

jeg fandt ud af at tallet som blev tilfæjet svarede til et id jeg ændre i databasen når event køres fordi jeg var kommet til definere dette :

ID = Database.Delete("DELETE FROM Users WHERE ID = " & e.CommandArgument)

Det ændrede jeg til
Dim pID As Integer = Database.Delete("DELETE FROM Users WHERE ID = " &
e.CommandArgument)

og så er der ingen problemer
Avatar billede Slettet bruger
11. september 2007 - 22:22 #15
Du må gerne poste et svar, jeg vil gerne give dig point. Jeg har roddet med det en hel dag så jeg er rimelig glad for at det er løst :)
Avatar billede neoman Novice
11. september 2007 - 22:22 #16
hehe fint - så ved du hvordan du skal debugge næste gang :)
Avatar billede Slettet bruger
11. september 2007 - 22:25 #17
:) ja tak mr. solver debugger
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