Avatar billede joshin Nybegynder
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 ???
Avatar billede agertoft Nybegynder
20. maj 2005 - 22:12 #1
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?)
Avatar billede joshin Nybegynder
20. maj 2005 - 22:16 #2
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
Avatar billede agertoft Nybegynder
20. maj 2005 - 22:23 #3
prøv at smide lidt kode, så kan jeg kigge på det...
Avatar billede joshin Nybegynder
20. maj 2005 - 22:54 #4
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();
  }
}
Avatar billede agertoft Nybegynder
20. maj 2005 - 23:17 #5
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 :)
Avatar billede agertoft Nybegynder
20. maj 2005 - 23:43 #6
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 :)
Avatar billede joshin Nybegynder
20. maj 2005 - 23:56 #7
Popup skal først komme ved postback
men den kommer ikke frem
scriptet ligger inde i formen:
<body...>
<form...>
  <input viewstate...>
  <crript...>
Avatar billede burningice Nybegynder
21. maj 2005 - 10:16 #8
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>");
Avatar billede burningice Nybegynder
21. maj 2005 - 10:17 #9
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();");
Avatar billede joshin Nybegynder
21. maj 2005 - 13:56 #10
Har lige konstateret at der er popup blokkeren der forhindre at scriptet bliver kørt, så jeg må nok tænke i andet design.
Avatar billede burningice Nybegynder
21. maj 2005 - 14:02 #11
:) ja, vi kan jo ikke have at du åbner en masse trælse reklamer på din hjemmeside ;)
Avatar billede joshin Nybegynder
11. august 2005 - 16:50 #12
Lukker
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