Problema sull'apertura di Finestre...

lunedì 02 marzo 2009 - 14.53

framur Profilo | Newbie

Salve, vi eespongo brevemente il mio problema (è la prima applicazione asp.net)
Ho una PAGINA asp.net con una textbox (txt1) e un pulsante (cmd1).
Premuto il pulsante mi si deve aprire un'altra Pagina nella quale c'è una combobox (cmbbox1) e un'altro pulsante (cmd2).
Selezionando un valore dalla combo e premendo il pulsante cmd2 questo valore lo vorrei ritrovare nella txt1 della pagina chiamante.
Ho provato con soluzioni tipo scrivendo
Server.Transfer("Default2.aspx", True)
sul cmd1 ma mi apre una pagina nuova chiudendo la vecchia!
come posso fare?
Grazie

balfaz Profilo | Expert

quale procedura usi per aprire la seconda pagina, c'è la fai a postarci un po di codice?

"Che in questo 2009 i nostri codici possano sconvolgere il mondo."

framur Profilo | Newbie

Server.Transfer("Default2.aspx", True)
ed apro la seconda pagina... poi ho usato delle soluzioni proposte in altri articoli.
Debbo ricorrere a javascript per aprire la seconda pagina in secondo piano?
e pre prendere il valore selezionato e metterlo in txt1?

balfaz Profilo | Expert

mi puoi spiegare un po di più della procedura, cosi si può capire meglio che strada possiamo prendere

"Che in questo 2009 i nostri codici possano sconvolgere il mondo."

framur Profilo | Newbie

Ora sono a casa domani ti posto quello che ho scritto.
Comunque, a me serva che si apra una seconda pagina web in primo piano e non che si apra a posto di quella già aperta.
Per inciso... come se in una windows form "PRINCIPALE" apra una nuova form in primo piano per poter procedere ad una selezione di un valore e questo valore alla chiusura della form in primo piano vada in una textbox della form PRINCIPALE.
Spero di essere stato più chiaro... :-)

framur Profilo | Newbie

If Not Page.PreviousPage Is Nothing Then
Dim SourceTextBox As TextBox
SourceTextBox = CType(PreviousPage.FindControl("lblMtrRic"), _
TextBox)
If Not SourceTextBox Is Nothing Then
SourceTextBox.Text = cmbPersone.Text
End If
End If

Questa è la funzione che ho inserito nel secondo bottone... ma il problema rimane aprire la pagina secondaria in primo piano senza
sostituire la prima come accade ora.
Saluti

balfaz Profilo | Expert

per fare questo dovremmo usare un po di javascript nel pulsante nro. 1 nella proprieta metodo onclientClick del bottone devi scrivere il seguente codice per creare un popup
onClientClick=' javascript:window.open("nome_pagina.aspx");'

in questo link troverai tutti gli attributi che ha disposizione la istruzione "window.open"
http://javascript.html.it/guide/lezione/876/le-caratteristiche-delle-finestre-personalizzabili/

per il discorso della chiusura finestra puoi invece usare lato markup

<script language="javascript">
par1= nomeFormPopUp.nomeCampo1PopUp.value
window.opener.nomeFormFinestraAprente.nomeCampo1.value = par1
</script>
tutto questo al premere il pulsante per la chiusura del popup

comunque se hai bisogno siamo qui

"Che in questo 2009 i nostri codici possano sconvolgere il mondo."

framur Profilo | Newbie

<script language="javascript">
function selezione(){
par1= Default2.cmbPersone.value;
window.opener.Default.lblMtrRic.value = par1;
}
</script>
.....
Nel pulsante
<input id="Button1" type="button" value="button" onclick="selezione();" /></div>

Default2 e Default sono i titoli delle pagine
<title>Default</title>
Ma non succedee nulla... da cosa può dipendere?

balfaz Profilo | Expert

function selezione(){
par1= Default2.cmbPersone.value;
window.opener.Default.lblMtrRic.value = par1;
----oooopsss mi è mancato questo pezzo--|
window.opener.focus(); |
//chiusura popup corrente |
window.close(); |
"Che in questo 2009 i nostri codici possano sconvolgere il mondo."

framur Profilo | Newbie

NON VA... ti posto tutto l'html della finestra "POPUP"

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default2.aspx.vb" Inherits="Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">
<title>Default2</title>
<script language="javascript">
function selezione(){
par1= Default2.cmbPersone.value;
window.opener.focus();
window.opener.Default.lblMtrRic.value = par1;

//chiusura popup corrente |
window.close(); |
</script>

</head>
<body>
<form id="form1" runat="server">
<div>

<asp:DropDownList ID="cmbPersone" runat="server">
<asp:ListItem>Pippo</asp:ListItem>
<asp:ListItem>Pluto</asp:ListItem>
</asp:DropDownList>
<input id="Button1" type="button" value="button" onclick="selezione();"/></div>
</form>
</body>
</html>

praticamente cliccando sul pulsante non fa nulla...

balfaz Profilo | Expert

innanzitutto devi togliere il "|" che ti è rimansto, poi devi chiudere la function con una "}"
comunque sto guardando il codice

"Che in questo 2009 i nostri codici possano sconvolgere il mondo."

balfaz Profilo | Expert

bene facciamo cosi allora....
nella pagina default1
<script type="text/javascript" >
function ritorno(param1) {
document.getElementById("txt").value = param1;
}
</script>

sarà la function che di ritorno catturerà il valore della popup

nella popup invece:
<script language="javascript">
function proviamo() {
var par1 = document.getElementById("cmbPersone").value;
opener.ritorno(par1);
window.close;
}
</script>

appena provato, dovrebbe funzionare.... ricorda chiudere il thread.., siamo sempre QUI
Facci sapere

"Che in questo 2009 i nostri codici possano sconvolgere il mondo."

framur Profilo | Newbie

Perfetto....
GRAZIE
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5