Linkbutton open popup

giovedì 26 giugno 2008 - 11.24

stee85 Profilo | Senior Member

(webform/C#)

Ciao a tutti,
ho un datagrid dove devo mettere un linkbutton che mi apre una popup
Mi va in errore quando cerco di passare l'id...

<asp:LinkButton ID="ChangeImage" Runat="server" PostBackUrl="javascript:Popup('gestione_immagini.aspx?id=' + <%# DataBinder.Eval(Container.DataItem,'ArsOwnId') %> +')">Gestione Immagini</asp:LinkButton>

Qualche suggerimento?
Grazie mille
Ste

Wamba Profilo | Expert

Ciao,
Suppongo che vada in errore perchè non è un indirizzo valido.
Usa la proprietà onclientclick (si trasforma in onclick sul controllo html inviato al client).
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com

rossimarko Profilo | Guru

>
><asp:LinkButton ID="ChangeImage" Runat="server" PostBackUrl="javascript:Popup('gestione_immagini.aspx?id='
>+ <%# DataBinder.Eval(Container.DataItem,'ArsOwnId') %>
>+')">Gestione Immagini</asp:LinkButton>
>

Se devi semplicemente eseguire una funzione javascript allora utilizza la proprietà OnClientClick (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton.onclientclick.aspx)

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

paoval72 Profilo | Senior Member

Ciao, prova così:

PostBackUrl= '<%# "javascript:Popup(\"gestione_immagini.aspx?id=" + DataBinder.Eval(Container.DataItem,'ArsOwnId') +")" %>'

Paolo




stee85 Profilo | Senior Member

scusate ma non ho ben capito come faccio a passargli l'id?


Ste

Wamba Profilo | Expert

Così dovrebbe funzionare
<asp:LinkButton ID="ChangeImage" Runat="server" OnClientClick="Popup('gestione_immagini.aspx?id=' + <%# DataBinder.Eval(Container.DataItem,'ArsOwnId') %> +'); return false;">Gestione Immagini</asp:LinkButton>
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com

stee85 Profilo | Senior Member

ora non da più errore di compilazione ma cmq non mi apre niente...
questo il codice:

<script type="text/javascript">
<!--
var stile = "top=10, left=10, width=250, height=200, status=no, menubar=no, toolbar=no scrollbar=no";
function Popup(apri) {
window.open(apri, "", stile);
}
//-->
</script>

//DATAGRID

<asp:TemplateColumn>
<EditItemTemplate>
<asp:LinkButton ID="ChangeImage" Runat="server" OnClientClick="Popup('gestione_immagini.aspx?id=' + <%# DataBinder.Eval(Container.DataItem,'ArsOwnId') %> +'); return false;">Gestione Immagini</asp:LinkButton>
</EditItemTemplate>
</asp:TemplateColumn>

Ste

Wamba Profilo | Expert

>ora non da più errore di compilazione ma cmq non mi apre niente...
>questo il codice:
Ok affrontiamo il problema:
Cerchiamo di essere precisi, perchè da qui non vediamo il monitor .
Non ti apre la popup o all'interno della popup non viene mostrata nessuna pagina?

><script type="text/javascript">
> <!--
>var stile = "top=10, left=10, width=250, height=200, status=no,
>menubar=no, toolbar=no scrollbar=no";
> function Popup(apri) {
> window.open(apri, "", stile);
> }
> //-->
></script>
>
>//DATAGRID
>
><asp:TemplateColumn>
> <EditItemTemplate>
><asp:LinkButton ID="ChangeImage" Runat="server" OnClientClick="Popup('gestione_immagini.aspx?id='
>+ <%# DataBinder.Eval(Container.DataItem,'ArsOwnId') %>
>+'); return false;">Gestione Immagini</asp:LinkButton>
> </EditItemTemplate>
> </asp:TemplateColumn>
>
>Ste

Al prossimo post che fai potresti mandare l'html risultante dal linkbutton?
primo tentativo:
Vediamo se entra nella funzione popup:
sostitusci la funzione con:
function Popup(apri) {
alert(apri);
}

se vedi l'alert con l'indirizzo abbiamo parzialmente isolato l'errore.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com

stee85 Profilo | Senior Member

avevo già provato a sostituire con un alert ma non faceva niente..
allora questo è l'html
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

non si apre nessuna popup..
In basso dice: Operazione completata. Errori della visualizzazione della pagina.
se apro i dettagli dell'errore dice errore di sintassi
Ste

Wamba Profilo | Expert

><asp:LinkButton ID="ChangeImage" Runat="server" OnClientClick="Popup('gestione_immagini.aspx?id='
>+ <%# DataBinder.Eval(Container.DataItem,'ArsOwnId') %>
>+'); return false;">Gestione Immagini</asp:LinkButton>
> </EditItemTemplate>

Non esegue il bind dei dati: hai guardato l'html?
<a onclick="Popup('gestione_immagini.aspx?id=' + &lt;%# DataBinder.Eval(Container.DataItem,'ArsOwnId') %> +'); return false;" id="ctl03_DataGrid1_ctl03_ChangeImage" href="javascript:__doPostBack('ctl03$DataGrid1$ctl03$ChangeImage','')">Gestione Immagini</a>

prova sostituire OnClientClick="Popup('gestione_immagini.aspx?id='+ <%# DataBinder.Eval(Container.DataItem,'ArsOwnId') %>+'); return false;" con
OnClientClick='Popup("gestione_immagini.aspx?id="+ <%# DataBinder.Eval(Container.DataItem,'ArsOwnId') %>+"); return false;'

Ho notato che 'ArsOwnId' è fra apici singolo... non dovrebbero essere doppi? in c# significa char e non string.

-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com

paoval72 Profilo | Senior Member

Ciao, il problema sta proprio negli apici, singoli e doppi.
Con un mio dbe un alert ha funzionato, poi ho provato ad adattarlo alla tua richiesta di Popup:

OnClientClick = '<%# "javascript:Popup(\"gestione_immagini.aspx?id="+ DataBinder.Eval(Container.DataItem,"ArsOwnId") +"\"); return false; "%>'

Non resta che provare, ma gli apici singoli e i segni <% dovrebbero essere esterni, mentre servono i backslash per indicare che s'intende il char " e non la chiusura della variabile..
Ciao,
Paolo
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