Otevření stránky s parametry n novém okně   otázka

ASP.NET WebForms

Dobrý den,

rád bych požádal o pomoc s následujícím problémem:

Mám stránku s formulářem a chci nabídnout klientovy po vyplnění údajů možnost tisku.

Vytvořil jsem tedy stránku s tiskovou sestavou, které předávám vyplněné hodnoty z formuláře v události "IButtonPrint_04_Click" jako parametry v Url takto:

    'Tisk obchodních podmínek (otevření sestavy)
    Protected Sub IButtonPrint_04_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)
        
        Dim time1 As String
        If TimeFromToBox.Text = "" Then
            time1 = ""
        Else
            time1 = TimeFromToBox.Text.Substring(0, 2) & TimeFromToBox.Text.Substring(3, 2)
        End If
        
        Dim time2 As String
        If TimeToFromBox.Text = "" Then
            time2 = ""
        Else
            time2 = TimeToFromBox.Text.Substring(0, 2) & TimeToFromBox.Text.Substring(3, 2)
        End If
        
        Dim p1 As String = "p1=" & CompanyNameBox.Text.ToString() & "&"
        Dim p2 As String = "p2=" & AdressStreetBox.Text.ToString() & "&"
        Dim p3 As String = "p3=" & AdressNumberBox.Text.ToString() & "&"
        Dim p4 As String = "p4=" & AdressZipCodeBox.Text.ToString() & "&"
        Dim p5 As String = "p5=" & AdressCityBox.Text.ToString() & "&"
        Dim p6 As String = "p6=" & DICBox.Text.ToString() & "&"
        Dim p7 As String = "p7=" & ICBox.Text.ToString() & "&"
        Dim p8 As String = "p8=" & CType(Contract.FindControl("lbl_ContractDate"), Label).Text & "&"
        Dim p9 As String = "p9=" & (TimeFromBox.Text.Substring(0, 2) & TimeFromBox.Text.Substring(3, 2)).ToString() & "&"
        Dim p10 As String = "p10=" & time1.ToString() & "&"
        Dim p11 As String = "p11=" & time2.ToString() & "&"
        Dim p12 As String = "p12=" & (TimeToBox.Text.Substring(0, 2) & TimeToBox.Text.Substring(3, 2)).ToString() & "&"
        Dim p13 As String = "p13=" & DeliveryStreetBox.Text.ToString() & "&"
        Dim p14 As String = "p14=" & DeliveryNumberBox.Text.ToString() & "&"
        Dim p15 As String = "p15=" & DeliveryZipCodeBox.Text.ToString() & "&"
        Dim p16 As String = "p16=" & DeliveryCityBox.Text.ToString()
        
        Dim urlparam As String = "~/ContractF_print.aspx?" & p1 & p2 & p3 & p4 & p5 & p6 & p7 & p8 & p9 & p10 & p11 & p12 & p13 & p14 & p15 & p16
        
        Response.Redirect(urlparam)
                
    End Sub

toto funguje, ale já bych rád, aby se stránka otvírala v novém okně pomocí javascript:window.open, protože takto se musí klient vracet zpět a původní stránku s formulářem a znovu načítat přes refresh.

Vím, že to lze nějak takto udělat neboť jsem to tak již měl a fungovalo to (jestli si dobře vzpomínám tak jsem do proměnné "urlparam" vkládal řetězec i s javascriptem), ale již se mi to nedaří obnovit.

Já jsem ten původně funkční odkaz s otvíráním přes javascript:window.open smazal, protože jsem to chtěl ještě následujícím způsobem vylepšit:

Vytvořil jsem si aplet window.js s tímto javascriptem

<!--

function window {
var url;
var wWidth, wHeight, wLeft, wTop;
var scrWidth, scrHeight;
var screen;

url = urlparam;

scrWidth = window.screen.width();
scrHeight = window.screen.height();

if (scrWidth > 800) {wWidth = 800;}
else {wWidth = scrWidth;}

if (scrHeight > 600) {wHeight = 600;}
else {wHeight = scrHeight;}

wLeft = (scrWidth / 2) - (wWidth / 2);
wTop = (scrHeight / 2) - (wHeight / 2);

screen = window.open(url + ", 'smlouva', 'width=" + wWidth + ", height=" + wHeight + ", left=" + wLeft + ", top=" + wTop + ", menubar=0, toolbar=1, location=0,scroolbars=1, resizable=1'");
screen.focus();

}

//-->

,který měl zajišťovat umístění okna podle rozlišení klienta a ten jsem chtěl do mého kódu implementovat. Bohužel se mi to nepodařilo dotáhnout, tak bych se rád vrátil alespoň k té původní funkční variantě.

Děkuji za případnou nápovědu ...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jsou 2 možnosti - buď uděláte tlačítkem PostBack na server a javascript nějak do stránky vygenerujete (třeba přes Page.ClientScript.RegisterClientScriptBlock), anebo tlačítko neuděláte jako asp:button, ale jako klasické input type="button" a kompletně jeho obsluhu uděláte Javascriptem.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback