Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Ciclo condizionato

  1. #1

    Ciclo condizionato

    Salve a tutti.
    Ho un ciclo che elenca il contenuto di una tabella che funzina senza problemi mediante GridView.
    Una delle colonne deve essere cliccabile così che ho un campo

    <asp:HyperLink runat="server" ID="link" NavigateUrl="#"><%#Eval("prodotto")%></asp:HyperLink>

    e fin qui tutto perfetto.

    Ora però avrei una necessità. Rendere questo campo cliccabile o meno in funzione di un valore booleano presente nello stesso db.

    Ad esempio Eval("disponibile")

    Abituato al ASP "nromale" avevo penasto di fare:

    <% If Eval("disponibile") Then%>
    <asp:HyperLink runat="server" ID="link" NavigateUrl="#"><%#Eval("prodotto")%></asp:HyperLink>
    <% Else%>
    <asp:Label runat="server">prodotto</asp:Label>
    <% End If%>

    Alternando così il campo HYPERLINK ad uno LABEL secondo la encessità, ma -ahimè- mi sono reso conto che nn si può fare in questo modo.

    Come posso fare ? Grazie a tutti.
    =MaRk0n3=


  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Dovresti intercettare l'evento OnItemDataBind della griglia ed eventualmente ottenere un riferimento al controllo HyperLink della colonna interessata, provvedendo ad abilitarlo/disabilitarlo con la proprietà Enabled in base al valore di quel flag, caricato precedentemente.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Sto provando questo controllo, che ancora non conosco.
    Un altro modo di risolvere è:

    nel link metto

    Enabled='<%#abilita((Eval("codice_istat_regione")) .ToString()) %>'

    ossia chiamo una funzione che mi prende un parametro e mi restituisce vero o falso

    la funzione abilita è:
    protected Boolean abilita( string codice_istat_regione)
    {
    return (codice_istat_regione == "20") ? true : false;
    }


    l'unica cosa è che il metodo consigliato da alka è migliore perchè permette di fare più cose.
    Per esempio, il link è disabilitato correttamente anche per firefox, ma non si vede in grigio.
    Perciò modificherei pure la classe per farlo vedere appunto in grigio
    Pietro

  4. #4
    grazie a tutti. ho risolto
    =MaRk0n3=


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.