Avatar billede suppenudel Nybegynder
31. maj 2006 - 13:30 Der er 8 kommentarer og
1 løsning

Åbne pop-up fra asp.net script

Hej,

Jeg vil gerne have en side til at åbne i en pop-up alt efter hvad der er valgt i en RadioButtonList.
I stil med:

Protected Sub Rbl_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Rbl.SelectedIndexChanged

    Select Case Rbl.SelectedValue
        Case Is = "Cykling"
            response.redirect("cykling.aspx") 'I pop up
        Case Is = "Fodbold"
            response.redirect("fodbold.aspx") 'I pop up
    End Select
End Sub

Jeg ved ikke om der skal bruges redirect, men i hvert fald skal jeg have inkluderet et javascript som eks.:

onclick="self.window.open('cykling.aspx','left=100,top=100,height=500,width=550,resizable=no,status=no,toolbar=no,menubar=no,location=no')"

mvh.
Avatar billede tdafoobar Nybegynder
31. maj 2006 - 14:12 #1
Nu virker html sådan, at popups er lavet af clientside javascript, så du skal istedet for din "response.redirect" metode, lave det op til at producere et javascript, som outputtes på html siden, som så laver en popup ud fra valget af radiobutton.
Avatar billede suppenudel Nybegynder
31. maj 2006 - 14:24 #2
Okay, jeg er ikke helt med. - Hvordan kan jeg gøre dette inde fra mine to Case?
Avatar billede snepnet Nybegynder
31. maj 2006 - 19:53 #3
Du angiver
<body id="body" runat="server"> som body-tag istedet for blot <body>
Og i din kode gøre du så sådan her:
Select Case Rbl.SelectedValue
  Case Is = "Cykling"
    body.Attributes.Add("onload", "window.open('cykling.aspx');")
Osv...
Du kan angive forskellige parametre på open, hvis du ønsker særlige ting og sager for vinduet der popper op.
Men æhhh.... Hvis det eneste du har brug for er er åbne et vindue - er der jo ikke nogen grund til at du poster til serveren... Det kan du gøre clienside med et alm. link.
Mvh
Avatar billede tdafoobar Nybegynder
01. juni 2006 - 13:12 #4
snepnet der er bare det problem at ca. ALLE pop-up blokkere i verden blokere for window.open() når den er placeret i onload elementet.

Så istedet bør løsningen være at lave hans switch() (case i .NET) I 100% clientside javascript istedet, og så bruge onclick handlers.
Avatar billede suppenudel Nybegynder
01. juni 2006 - 21:17 #5
Hej igen,

Jeg synes egentlig godt jeg kan acceptere løsningen, også fordi det kun er til brug i noget intern administration jeg selv skal bruge, så jeg må slå pop-up killeren fra hvis den brokker sig. - Men kom i øvrigt til at tænke over snepnets bemærkning med hvorfor ikke bare indsætte et link, det er ikke altid man lige udtænker den mest simple løsning :-) Men jeg havde regnet med at skulle lave det mere dynamisk på en eller anden måde, så derfor en radiobuttonlist og en switch/case..

Men hvad siger du tdafoobar, skal jeg bruge din metode, og er jeg så ude i noget OnClientClick på min button?
Avatar billede snepnet Nybegynder
01. juni 2006 - 21:24 #6
ClientScript.RegisterStartUpScript(...) - har samme effekt, men lægger ikke koden på body (ved ikke om det gør en forskel med popup-blockers (stadig under forudsætning af at du har behov for at køre noget kode på serveren inden det sker).
Ellers fortsat - en ren clientside løsning - hvordan det så end skal virke (knapper/links/radiobuttons...).
Mvh
Avatar billede suppenudel Nybegynder
02. juni 2006 - 13:28 #7
Det virker efter hensigten her, så I må gerne lægge et par svar..
Avatar billede snepnet Nybegynder
02. juni 2006 - 13:41 #8
Oki ... hvilken model har du brugt?
Mvh
Avatar billede suppenudel Nybegynder
02. juni 2006 - 13:45 #9
Jeg brugte din den første der - jeg er ikke helt sikker på om jeg forstår  tdafoobar's med at lave den 100% clientside. Så skal jeg i hvert fald ind og læse lidt mere om ClientSide-scripting først...
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