30 messaggi dal 26 agosto 2010
Salve a tutti,
mi sto perdendo in un bicchiere d'acqua:

in una pagina ho un linkbutton fatto così:
<asp:HyperLink ID="HyperLink1" runat="server" Target="_blank" NavigateUrl="~/Table/StampaTable.aspx?opt=<%# RadioButtonList1.SelectedValue%>" Text="Versione per la stampa 2">Versione per la stampa </asp:HyperLink>

Il mio problema è questo: il parametro opt non viene valorizzato correttamente come mi aspetto infatti il codice HTML generato è il seguente:

<a id="HyperLink1" href="StampaTable.aspx?opt=&lt;%# RadioButtonList1.SelectedValue%>" target="_blank">Versione per la stampa </a>
Neanche con
?opt=<%# HttpUtility.HtmlEncode(RadioButtonList1.SelectedValue) %>
ho ottenuto il risultato sperato.

Vorrei che il parametro opt fosse valorizzato con il valore della selezione del controllo RadioButtonList (i valori possibili sono "1","2","3").

Come fare?
Mantenendo il tag HyperLink, potresti associargli un evento OnClick ed effettuare il redirect da lì (visto che il controllo RadioButtonList1 è lato server, hai il SelectedValue...occhio al postback però).


Da quanto vedo dal codice però non hai un evento lato server sul link, quindi perché non usare direttamente un tag <a> e creare il link via javascript (jQuery sarebbe preferibile)?

Davide Guida
Developer, Data Manager @ Publicis Healthware
http://davideguida.netne.net
524 messaggi dal 24 maggio 2002
Contributi
il fatto è che non puoi "bindare" in questo modo l'attributo NavigateUrl perchè quest'ultimo si aspetta una normale stringa sulla quale farà, immagino, anche una URLEncode...

Comunque a me sembra che il problema sia diverso ovvero tu vuoi che selezionando un valore nella RadioList il tuo HiperLynk passi il parametro selezionato.

Questo è possibile farlo solo lato client in quanto l'oggetto HyperLink non genera nessun evento di click lato server.

Potresti a questo punto utilizzare un button e intercettare l'evento onClick per generare la URL di destinazione e poi fare un Redirect.

Marco
524 messaggi dal 24 maggio 2002
Contributi
Ho controllato per scrupolo, non esiste l'evento OnClick (lato server) per l'oggeto HyperLink

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.hyperlink_members.aspx

Marco.
Modificato da makbox il 02 settembre 2010 12.19 -
hai ragione. Beh potrebbe sempre cambiarlo in un LinkButton (come da titolo del topic), così avrebbe solo da scegliere se usare OnClick o OnCommand :)

La scelta migliore però secondo me sarebbe sempre usare javascript ed evitare inutili postback...

Davide Guida
Developer, Data Manager @ Publicis Healthware
http://davideguida.netne.net
524 messaggi dal 24 maggio 2002
Contributi
Concordo pienamente!

:-D
Prova così:
  
<script type="text/javascript">  
        function setLink(sender) {  
            var selVal = $('#radioList input:checked').val();  
            sender.href = 'http://www.google.it?param=' + selVal;  
        }  
      
    </script>  
    <div>  
        <asp:RadioButtonList runat="server" ID="radioList">  
            <asp:ListItem Text="Item 1" Value="0" />  
            <asp:ListItem Text="Item 2" Value="1" />  
            <asp:ListItem Text="Item 3" Value="2" />  
        </asp:RadioButtonList>  
    </div>  
    <div> 
        <asp:HyperLink  ID="lnkServer" runat="server" Text="Cliccami (server)" onclick='javascript:setLink(this)' /> 
         
        <a id='lnkClient' href='#' onclick='javascript:setLink(this)' >Cliccami (client)</a> 
    </div> 

Davide Guida
Developer, Data Manager @ Publicis Healthware
http://davideguida.netne.net
30 messaggi dal 26 agosto 2010
Ok, penso di aver capito l'inghippo! ;)
Una domandina:
<script type="text/javascript">
function setLink(sender) {
var selVal = $('#radioList input:checked').val();
sender.href = 'http://www.google.it?param=' + selVal;
}

si accede al radioList con JQuery vero? Ok cmq chiaro, converto il tutto in JS!
Grazie mille!

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.