20. maj 2005 - 22:03
Der er
11 kommentarer og 1 løsning
Åbne nyt vindue fra code behind
Hej Eksperter Fra code behind vil jeg gerne åbne et nyt vindue, url'en bygges på baggrund af div. parametre efter postback. jeg har forsøgt med div. scripts, og experimentert med Response.Redirect og Server.Transfer men uden held. Idéer ???
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Hvilken hændelse gør at du får åbnet det her nye vindue? Du skal tilknytte et javascript til denne hændelse. Det er ikke noget som er "indbygget" i .net... (endnu?)
jeg får en postback fra et textfield som jeg fanger i Page_Load, i en metode bygger jeg så en url, som jeg ønsker åbnet i et nyt vindue
prøv at smide lidt kode, så kan jeg kigge på det...
private void Page_Load(object sender, System.EventArgs e) { if (Page.IsPostBack) { string url = FindUrl(); if (url.Length > 0) { // Forsøg på at åben nyt vindue this.RegisterClientScriptBlock("onload","<script language='JavaScript'>window.open('" + url + "');</script>"); } } else { BindData(); } }
Din kode virker fint. Men du skal udskifte "if (Page.IsPostBack)" med if(!Page.IsPostBack). Så vil det virke. Sådan som din kode ser ud nu, vil popup vinduet først komme ved postback. Og hvis du vil bruge popupvinduet, når siden loades første gang, skal det netop ikke være ved postback :)
sorry... det er mig der ikke læser dit oprindelige spørgsmål ordentligt... er ved at være træt... prøver lige at kigge på det :)
Popup skal først komme ved postback men den kommer ikke frem scriptet ligger inde i formen: <body...> <form...> <input viewstate...> <crript...>
det duer heller ikke at registrere et onload-script på den måde. Du skal istedet have fat i referencen til din form og adde en attribut: ((HtmlForm)FindControl("dinForm)).Attributes.Add("onLoad", "java script: window.open('" + url + "');</script>");
evt kan du opbygge en javascript-metode, registrere den via RegisterClientScriptBlock, og dernæst koble den på din onload ((HtmlForm)FindControl("dinForm)).Attributes.Add("onLoad", "dinMetode();");
Har lige konstateret at der er popup blokkeren der forhindre at scriptet bliver kørt, så jeg må nok tænke i andet design.
:) ja, vi kan jo ikke have at du åbner en masse trælse reklamer på din hjemmeside ;)
11. august 2005 - 16:50
#12
Lukker
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.