110 messaggi dal 04 settembre 2010
buona sera,
ho un problema di passaggio dati dalla pagina chiamante che attiva un altra pagina in formato popup
e devo passare dei parametri prelevati da una gridview.

questa è la struttura del del pulsante e pagina popup

<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton runat="server" ID="btnSelCentro" ImageUrl="~/image/BotonOk.png" Width="15" Height="15" CommadName="Seleziona Nuts" ToolTip="Seleziona Codice NUTS" CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>' OnCommand="btnSelCentro_Command" />
<cc1:ModalPopupExtender ID="mp2" runat="server" PopupControlID="PanlEntiPopUp" TargetControlID="btnSelCentro"
CancelControlID="Button2" BackgroundCssClass="Background">
</cc1:ModalPopupExtender>
<asp:Panel ID="PanlEntiPopUp" runat="server" CssClass="Popup" align="center" style = "display:none">
<iframe style="width: 920px; height: 270px;" id="irm1" src="Enti_PopUp.aspx" runat="server"></iframe>
<br/>
<asp:Button ID="Button2" runat="server" Text="Close" />
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>


come posso passare il parametro prelevato dalla gridview e contestualmente aprire la pagina popup?

Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
in linea generale segui le indicazioni di questo post qui:
https://stackoverflow.com/questions/1272636/passing-data-into-a-modalpopupextender#answer-1289471

Proverò a contestualizzarlo al tuo caso.
Nella tua funzione btnSelCentro_Command vedo che ti passi il numero della riga come CommandArgument, quindi sei già in grado di recuperare i valori della riga selezionata.
A questo punto copia i valori della riga in altrettanti campi HiddenField (o Label o TextBox) che dovrai creare all'interno del Panel che verrà aperto dal ModalPopupExtender. In pratica, dentro il metodo la tua funzione btnSelCentro_Command metti una cosa del genere

textBox1.Text = valoreColonna1DellaGridView;
textBox2.Text = valoreColonna2DellaGridView;
//Infine mostri la popup
mp2.Show();


Dato che textBox1 e textBox2 sono caselle di testo che hai creato nel Panel legato al ModalPopupExtender, verranno mostrati dentro la popup.

Ora, per rispondere più precisamente, devo capire cosa intendi con "Devo passare dei parametri". Ti basta visualizzare dei valori come abbiamo visto in questo esempio? Oppure devi leggerli con una funzione javascript e farci qualcosa in particolare?

ciao,
Moreno

Enjoy learning and just keep making
110 messaggi dal 04 settembre 2010
Ciao grazie per la risposta,
In pratica mi creo dei popup in altre pagine che uso come inserimento o modifica dati nel database quindi i parametri che passo dalla pagina chiamante (es. ID ecc...) devo poterli leggere nel popup chiamato e per sfruttare query, insert o update ecc....
Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, che cosa intendi con "altre pagine"?
Il ModalPopupExtender apre una popup nella pagina stessa e nessun'altra pagina viene richiamata a meno che tu non abbia messo un tag <iframe> nel popup. Se è così, puoi aggiungere runat="server" all'iframe e manipolare il suo attributo src lato server, in modo da passare i valori in querystring alla pagina che verrà aperta.
Nella funzione btnSelCentro_Command metti:
idIFrame.Attributes["src"] = "AltraPagina.aspx?id=" + valoreColonna1DellaGridView + "&altraVariabile=" + valoreColonna2DellaGridView;
mp2.Show();


Se non fosse così, posta il codice della tua pagina. Comunque... capito il modo vanno passati i parametri? Li recuperi da btnSelCentro_Command e li usi per valorizzare dei controlli server side. Nei due esempi precedenti abbiamo visto TextBox e iframe.

ciao,
Moreno

Enjoy learning and just keep making
110 messaggi dal 04 settembre 2010
All'inizio del post ho inserito lo script della pagina che richiama e crea un altra popup ti reinserisco il codice che genera la pagina popup

cc1:ModalPopupExtender ID="mp2" runat="server" PopupControlID="PanlEntiPopUp" TargetControlID="btnSelCentro"
CancelControlID="Button2" BackgroundCssClass="Background">
</cc1:ModalPopupExtender>
<asp:Panel ID="PanlEntiPopUp" runat="server" CssClass="Popup" align="center" style = "display:none">
<iframe style="width: 920px; height: 270px;" id="irm1" src="Enti_PopUp.aspx" runat="server"></iframe>
<br/>
<asp:Button ID="Button2" runat="server" Text="Close" />
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>


Come si può vedere viene richiamata un altra pagina con iframe

<iframe style="width: 920px; height: 270px;" id="irm1" src="Enti_PopUp.aspx" runat="server"></iframe>

Quindi aggiungendo il codice che mi hai scritto precedentemente nalla src dovrei ottenere quello che mi serve giusto?

Grazie
Modificato da Mau67 il 24 luglio 2018 20.02 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ah giusto, l'avevi postato. Abbi pazienza ho bisogno di ferie :D


Quindi aggiungendo il codice che mi hai scritto precedentemente nalla src dovrei ottenere quello che mi serve giusto?

Esatto devi manipolare l'src dell'iframe. Poi, dalla pagina chiamata (Enti_PopUp.aspx) recupererai tali valori scrivendo Request.QueryString["NomeChiave"].

Enjoy learning and just keep making
110 messaggi dal 04 settembre 2010
Traquillo capisco benissimo,
Comunque grazie domani provo e ti faccio sapere, cosi può eventualmente servire ad altri.
Intanto grazie ti aggiorno
Ciao
110 messaggi dal 04 settembre 2010
Buongiorno Moreno,
Scusa ma non ho capito cosa scrivere
Nella src="pagina2?ID qui cosa scrivo quale è la stringa per richiamare la colonna?

Ho provato cosi
src="pagina2?'%#Eval("ID")%>'"

Solo che mi restituisce un errore di riga

Come risolvo?
Grazie
Modificato da Mau67 il 25 luglio 2018 08.42 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.