Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Controllare se Eval è empty

    ciao!

    in una pagina asp.net avrei bisogno di controllare se Eval è vuoto.
    seguendo diversi esempi online ho fatto così:
    codice:
    <% If String.IsNullOrEmpty(Eval("Immagine3").ToString()) Then %>
        <span>NO</span>
    <%Else %>
        <span>SI</span>
    <% End If %>
    ma mi da questo errore:
    codice:
    System.InvalidOperationException: 'I metodi di associazione dati come Eval(), XPath() e Bind() possono essere utilizzati solo nel contesto di un controllo con associazione a dati.'

  2. #2
    ok ho capito che devo usare questa forma:
    codice:
    <%# If(String.IsNullOrEmpty(DataBinder.Eval(Container.DataItem, "Immagine2")), "", "") %>
    il mio problema è che quando la stringa non è vuota, io devo riprodurre questo html:
    codice:
    <li>
        <img src="http://www.sito.it/<%#Eval("Immagine2") %>" alt="<%#Eval("Titolo") %>">
    </li>
    come posso fare???

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,562
    Quote Originariamente inviata da fermat Visualizza il messaggio
    ok ho capito che devo usare questa forma:
    come posso fare???

    qual'e' di preciso il problema ?
    non puoi usare Databinder anche nella Then e nella Else ?

  4. #4
    ci sto provando, ma non capisco quale sia la sintassi.
    qualsiasi cosa scriva mi da errore.

    ad esempio:
    codice:
    <%# If String.IsNullOrEmpty(DataBinder.Eval(Container.DataItem) Then %>
    
    <%# End If %>

  5. #5
    se invece provo cosi, senza cancelletto:
    codice:
    <% If String.IsNullOrEmpty(DataBinder.Eval(Container.DataItem)) Then %>
    
    <% End If %>
    non ho errori di sintassi, ma ottengo questo:
    codice:
    Errore        'Container' non dichiarato. Potrebbe non essere accessibile a causa del relativo livello di protezione.

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,562
    potresti scrivere il codice completo ?

  7. #7
    senza che ti posto il codice html superfluo, ti mostro quello che devo modificare:
    codice:
    <asp:Repeater ID="RepeaterDtl" runat="server">
        <ItemTemplate>
            <li>
                <img src="/NEWS/<%#Eval("Immagine2") %>" alt="<%#Eval("Titolo") %>">
            </li>
        </ItemTemplate>
    </asp:Repeater>
    dovrei fare un controllo su <%#Eval("Immagine2") %>.
    in pratica:
    codice:
    <asp:Repeater ID="RepeaterDtl" runat="server">
        <ItemTemplate>
            <%# If Not String.IsNullOrEmpty(DataBinder.Eval(Container.DataItem)) Then %>
                <li>
                    <img src="/NEWS/<%#Eval("Immagine2") %>" alt="<%#Eval("Titolo") %>">
                </li>
            <%# End If %>
        </ItemTemplate>
    </asp:Repeater>
    il mio problema è quella If, e la sua sintassi.
    non sono riuscito come fare un controllo del genere dentro la pagina.
    ho provato in vari modi / sintassi.
    ma ottengo sempre un errore (ogni volta diverso ovviamente).

  8. #8
    mi sono inventato una cosa per la quale dovrei ricevere i complimenti solo (e sottolineo solo) per la fantasia.

    nel code behind:
    codice:
        Protected img2 As String
    nella pagina:
    codice:
    <%# img2 = DataBinder.Eval(Container.DataItem, "Immagine2") %>
    <% If Not String.IsNullOrEmpty(img2) Then %>
     <li>
      <img src="/NEWS/<%#Eval("Immagine2") %>" alt="<%#Eval("Titolo") %>">
     </li>
    <% End If %>
    funziona, l'unico problema è che nella pagina mi appare True/False (a seconda dell'if).
    non ho capito perchè.....

  9. #9
    mi sono accorto che nn funzionava bene.
    allora sono tronato al punto di partenza:
    codice:
    <%# If(String.IsNullOrEmpty(DataBinder.Eval(Container.DataItem, "Immagine1")), "", "<li><img src="" alt=" <%# Eval(\"Titolo\") %>"></li>") %>
    questo funzionerebbe, ho "solo" il problema coi doppi apici.
    così mi da errore di compilazione:
    codice:
    Errore    BC30201    È prevista l'espressione
    Errore    BC30037    Il carattere non è valido

  10. #10
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,562
    con quale versione del framework stai lavorando ?

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 © 2019 vBulletin Solutions, Inc. All rights reserved.