209 messaggi dal 09 ottobre 2006
Ciao a tutti,
in un datalist vorrei aggiungerci un LinkButton.
Ho provato così:
<asp:LinkButton OnClick="clikbutton" ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>

Funziona ma in minima parte. Mi spiego:
1)Innanzitutto il testo del bottone viene visualizzato bianco e quindi non si vede.
2)il link che crea e' questo:
javascript:__doPostBack('ctl00$ContentPlaceHolder1$DLFoto$ctl11$LinkButton1','')
come faccio a passargli un parametro nel link?
Il LinkButton usa "OnClick="clikbutton"" che con una sub visualizzo a fianco la foto corrispondente tramite un asp:Image.
Per visualizzare il nome del bottone uso <%#Container.DataItem("rif")%>, io vorrei passargli anche <%#Container.DataItem("foto")%>.
Come mai pur cambiando bottone il collegamento è sempre "LinkButton1"?

Spero di essermi spiegato correttamente,
ringrazio anticipatamente!
426 messaggi dal 17 aprile 2006
non so se ho capito per bene, ma partiamo dal primo aspetto che spero per te sia chiaro. Un linkbutton non è un hyperlink, ma un bottone che tramite javascript fa postback.
i link button hanno delle proprietà quali CommandName e CommandArgument che puoi usare per immagazzinare dei dati. ad es puoi mettere CommandArgument='<%# Eval("foto") %>

poi nella sub fai il cast del sender con il linkbutton e recuperi il commandargument.

Dato però che usi un linkbutton che per postare usa javascript faresti prima ad usare direttamente javascript
<asp:LinkButton OnClientClick='<%# ValutaImmagine(Eval("foto")) %>' style="color:#000000;" ID="LinkButton1" 
Text='<%# Eval("rif") %>' runat="server"></asp:LinkButton> 


e nel codice fai una funzione che restituisce una stringa di tipo protetto che accetta il parametro foto di tipo oject
la funzione dovrebbe restituire la stringa
    Protected Function ValutaImmagine(ByVal oFoto As Object) As String
        Return "javascript: document.getElementById('" & Image1.ClientID & "').src='Images/" & oFoto.ToString & "'; return false;"
    End Function

Ciao Alessandro
209 messaggi dal 09 ottobre 2006
Grazie taccio,
non ho capito tanto il codice ma funziona tutto perfettamente. Grazie!
Un ultima domanda:
al primo caricamento della pagina l'asp:image visualizza il classico errore della foto (l'errore della "x"), come posso intercettare il postback così imposto a true la proprietà visible?

Grazie di tutto!
426 messaggi dal 17 aprile 2006
in realtà non credo che il mio codice ti faccia fare postback
anzi, lavora senza refreshare la pagina. dunque hai due alternative.
mettere l'immagine a visibility hidden via javascript o mettere un'immagine di 1 px come immagine vuota

se vuoi semplicemente nasconderla fintanto che non venga impostata da javascript allora metti nel tag image questo
<asp:Image ID="Image1" runat="server" style="visibility:hidden" />


nel codice vb cambia la funzione testo con:
Return "javascript: var a = document.getElementById('" & Image1.ClientID & "');a.style.visibility='visible'; a.src='Images/" & oFoto.ToString & "'; return false;"

Ciao Alessandro
209 messaggi dal 09 ottobre 2006
Grazie mille Alessandro!
Tutto ora funziona correttamente!
209 messaggi dal 09 ottobre 2006
Ciao Alessandro, posso aggiungere un'altra cosa?
Se volessi aggiungere un collegamento all'immagine, come posso fare?
Vorrei aggiungere un link in modo da aprire una popup per visualizzare la foto più grande.

Ho provato così:
<asp:HyperLink runat=server id=link>
<asp:Image ID="Image1" runat="server" style="visibility:hidden" />
</asp:HyperLink>

poi nel .vb ho scritto:
link.NavigateUrl = "esempio.aspx"

ma non funziona.
Qualche suggerimento?
Grazie a tutti!

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.