Avatar billede baddaydaddy Nybegynder
19. august 2011 - 12:27 Der er 2 kommentarer og
1 løsning

style.display der sættes i javascript bliver overstyrt af property tidligere sat i codebehind.

Jeg har et panel der bliver vist ved hjælp af javascript når der klikkes på en knap:

function ShowHide(id) {
        var el = $get(id);
        if (el.style.display == 'none') {
            el.style.display = 'block';
        }
        else {
            el.style.display = 'none';
        }
    }

I panelet er der en dropdownliste, der hvis man vælger et bestemt element giver mulighed for at indtaste noget i nogle felter. Ud over disse er der en 'annuller' og en 'gem' knap. Annuller knappen bruger igen ShowHide til at skjule feltet (da det er unødvendig at lave et postback bare for at skjule panelet).
For at vise/skjule de ekstra felter bliver der lavet et postback når man vælger noget i dropdownlisten, og for at panelet stadig skal vises har jeg tilføjet følgende i dette metodekald:

panelEdit.Style[HtmlTextWriterStyle.Display] = "block";

Scenariet er som følger:
1. Man klikker på knappen (panelet vises)
2. Man vælger noget i dropdownlisten (postback-event udføres)
3. Man klikker Annuller (panelet skjules)

Problemet kommer nu:
4. Man laver noget andet der forårsager et postback på siden og vupti... så vises panelet igen. Javascript metoden bliver IKKE kaldet. Der bliver heller ikke gjort noget ved panelet properties her.

Jeg har selv resoneret mig frem til at det nok er ViewState der driller. Når jeg kalder ShowHide i javascript har dette jo ikke nogen påvirkning på ViewState, men når man sætter en style property i codebehind, så har den vel...?? Eller er det forkert?

Jeg har uanset ikke fundet nogen løsning...
Avatar billede janus_007 Nybegynder
21. august 2011 - 19:38 #1
Sæt et hidden field ind på siden og sæt den til en værdi når showhide kaldes, denne hidden field spørger du så på ved postback og sætter knappen til den korrekte tilstand serverside :)
Avatar billede baddaydaddy Nybegynder
22. august 2011 - 14:08 #2
Tak for det... smid lige et svar!
Avatar billede janus_007 Nybegynder
22. august 2011 - 19:57 #3
:)
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
Kurser inden for grundlæggende programmering

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