27. februar 2008 - 11:25Der er
6 kommentarer og 1 løsning
Undgå OnClientClick triggers ved page load
Hej eksperter,
Jeg har opfundet følgende problem: En linkbutton med OnClientClick til en metode i codebehind filen skal skujle/vise 2 rækker i en tabel. Men eventen bliver allerede affyret når siden loader så rækker starter med at være skjult.
Spørgsmål: 1. Hvordan undgår man at den bliver affyret ved load af siden? 2. Hvorfor skal en OnClientClick returnere en String?
Husk at løsningen skal være gennem codebehind-filen eftersom de diverse linkbuttons bliver oprettet dynamisk.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Eventhandleren kan også kobles på i forms designeren. Det er lidt pænere fordi den så ryger om i den autogenerede initialiserings-kode, som kun bliver kaldt i constructoren til formen.
Når du kobler den på i Page_Load skal der i hvert fald checkes på at det ikke sker når siden loades som postback, da du ellers vil få tilføjet en ny delegate til din event hver gang siden loader..
Jeg vender først tilbage til den specifikke kode i morgen. Så da tester jeg det lige af. Men det er da klart at der ikke er tale om et 'client-side script', jeg skal da lige åbne øjnene inden jeg koder løs :-] Indtil videre tak for hjælpen.
Du kan nok desværre ikke pille ved eventens signatur. 'Click'-Eventen er defineret som typen 'EventHandler' hvilket vil sige at den forventer en delegate der returnerer void og tager to argumenter af typerne hhv 'object' og 'EventArgs'.
Så dine startRow og endRow parametre er du nok nødt til at trække ud et andet sted fra. Det kunne være nogle fields i din klasse eller nogle andre (usynlige) felter på siden.
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.