Avatar billede simsen Mester
11. oktober 2007 - 22:18 Der er 12 kommentarer og
1 løsning

Linkbutton og target

Hejsa,

Jeg vil gerne have oprettet en knap. Når jeg klikker på knappen skal den gå til codebehind og sætte noget ind i session og så åbne et nyt vindue, hvor jeg kan hente det, jeg har skrevet i session ud igen.

Forsøger jeg mig med Linkbutton mangler jeg en target funktion (som i a href). Og jeg kan jo ikke bruge response.redirect da jeg ikke vil åbne siden i samme vindue - men som skrevet et nyt vindue.

Nogen der kan fortælle mig, hvad jeg skal gøre?

Har også forsøgt mig med en a href med en onclik (hvor jeg lavede eventen i codebehind filen) - den gik slet ikke ind i den kode.....

Så håber nogle af jer har ideer?

Koden til mi a href:

private void PrintKoerselByDate()
    {
        Session["KoerselStart"] = txtFromDate.Text;
        Session["KoerselSlut"] = txtToDate.Text;
        Session["Koersel"] = "Date";
    }

<a id="A1" href="PrintKoersel.aspx" runat="server"  target="_blank" onclick="PrintKoerselByDate()">&nbsp&nbsp Print kørsel pr. dato</a>

mvh
simsen :-)
Avatar billede sherlock Nybegynder
11. oktober 2007 - 22:48 #1
Check RegisterStartupScript.

Ex.
public void A1_click(object sender, EventArgs e)
{
string popupScript = "<script language='javascript'>" +
"window.open('PrintKoersel.aspx', 'Print kørsel', " +
"'width=1000, height=1000, menubar=yes, resizable=yes')" + "</script>";

Page.RegisterStartupScript("PrintJS", popupScript);
}
Avatar billede simsen Mester
12. oktober 2007 - 07:14 #2
Hejsa sherlock,

Den der forstår jeg ikke. Jeg vil ikke have en popup (bare en ny side) som sådan og det er ikke problemet, at den  ikke pop'er op med det nye vindue. Problemet ligger i at den ikke køre PrintKoerselByDate() - altså tilføjer det jeg vil have i sessions?

mvh
simsen :-)
Avatar billede sherlock Nybegynder
12. oktober 2007 - 10:14 #3
Det er skam bare en ny browser med PrintKoersel.aspx. Du kan selv bestemme hvordan den skal opføre sig med parametre til window.open(....).

Hvis du sætter dine Session-variable først, og udfører de linier jeg har vist, så vil din side åbne det nye vindue.

Du kan bare lave en knap, som du først ville. Du skal ikke selv tilføje Javascript i markup'en. Og ingen href. Bare ren codebehind. Så er rækkefølgen også sikker på at blive rigtig, da du er sikker på at sætte dine variabler inden der bliver åbnet et nyt vindue.
Avatar billede simsen Mester
12. oktober 2007 - 15:39 #4
Jeg har forsøgt mig med nedenviste:

<asp:Button id="btnPrintKoerselDate" class="buttonbackground" runat="server" Width="125px" Text="Print kørsel pr. dato" OnClick="btnPrintKoerselDate_Click"></asp:Button>

protected void btnPrintKoerselDate_Click(object sender, EventArgs e)
    {
        Session["KoerselStart"] = txtFromDate.Text;
        Session["KoerselSlut"] = txtToDate.Text;
        Session["Koersel"] = "Date";

        string popupScript = "<script language='javascript'>" +
        "window.open('PrintKoersel.aspx', 'Print kørsel', " +
        "'width=1000, height=1000, menubar=yes, resizable=yes')" + "</script>";

        Page.RegisterStartupScript("PrintJS", popupScript);
    }

Det går godt nok i Firefox - men når jeg forsøger at køre det i IE (hvor det skal bruges), får jeg intet frem........den kommer bare frem nederst og skriver "done with error on page"

Nogen ideeér?

mvh
simsen :-)
Avatar billede simsen Mester
12. oktober 2007 - 15:40 #5
Og gider du lige forklare mig hvad PrintJS er? (så jeg også lærer noget af det her) :-)
Avatar billede simsen Mester
12. oktober 2007 - 16:44 #6
Og for god ordens skyld.....jeg har lukket min firewall ned og sikret mig, der ingen popup blokker er sat til disabled.....
Avatar billede sherlock Nybegynder
12. oktober 2007 - 17:45 #7
PrintJS er key til den collection der indeholder de registrerede scripts på siden.

Prøv at dobbeltklikke på fejlikonet i IE og se hvilken fejl den giver.
Avatar billede simsen Mester
12. oktober 2007 - 19:26 #8
Den siger:

Line: 278
Char: 1
Error: Invalid argument
Code: 0


URL: http://localhost:1739/ANSI/Faktura/Lister.aspx
Avatar billede sherlock Nybegynder
12. oktober 2007 - 20:01 #9
Hmm. Det er ikke nemt, når man ikke selv sidder med koden.
Avatar billede simsen Mester
12. oktober 2007 - 20:09 #10
sherlock

Jeg ved det godt - du har ikke en anden idé til en anden løsningsmulighed. Jeg har brug for et eller andet, når der klikkes på den, skriver den i session og åbner en ny side? Som sagt - jeg er fuldstændig ligeglad med hvordan - bare det bliver løst.

mvh
simsen :-)
Avatar billede sherlock Nybegynder
12. oktober 2007 - 20:40 #11
Du kan ikke åbne nye vinduer direkte fra codebehind.
Der skal du bruge java-/vbscript i browseren (Og FYYYYH, hvis du bruger vb :))
Og til det formål har M$ lavet RegisterStartupScript + et par andre lignende funktioner.
Din fejl er i javascriptet. Prøv at fifle lidt med det. Læs om window.open og check eksempler på nettet. Så er det garanteret bare en lille ubetydelighed, som skal rettes.
Avatar billede simsen Mester
12. oktober 2007 - 21:14 #12
YES

Det lykkes nu.

Man må IKKE skrive mellemrum i navn og der må IKKE være plinger rundt omkring width og height......

System.Text.StringBuilder sb = new System.Text.StringBuilder();
        sb.Append("<script language='javascript'>");
        sb.Append("window.open('PrintKoersel.aspx', 'PrintKoersel',");
        sb.Append("'top=0, left=0, width=800, height=600, menubar=yes,toolbar=yes,status,resizable=yes,addressbar=yes');<");
        sb.Append("/script>");

        Type t = this.GetType();

        if (!ClientScript.IsClientScriptBlockRegistered(t, "PopupScript"))
            ClientScript.RegisterClientScriptBlock(t, "PopupScript", sb.ToString());

Tusind tak for hjælpen sherlock :-)

mvh
simsen :-)
Avatar billede sherlock Nybegynder
12. oktober 2007 - 22:15 #13
Great :)
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