Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    49

    Valutazione Container.DataItem

    Ciao a tutti,
    c'è un modo per valutare lato .aspx il container.DataItem ?
    Mi spiego meglio :
    ho il seguente pezzo di codice
    <asp:datalist id="dl" runat=server>
    <itemtemplate>
    <table>
    <tr>
    <td>Descrizione</td>
    <td><%# Container.DataItem("Descrizione") %></td>
    </tr>
    <tr>
    <td>Quantità</td>
    <td><%# Container.DataItem("Quantita") %></td>
    </tr>
    </table>
    </itemtemplate>
    </asp:datalist>
    Voglio fare in modo che la riga della tabella relativa al campo
    quantità sia presente solo se la quantità è diversa da zero
    Se provo ad inserire
    <%
    If CInt(Container.DataItem("Quantita")) <> 0 Then ...
    %>
    mi da errore

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    devi usare una funzione
    nel codebehind/nel tag script
    Function Valuta(q as integer)
    If q <> 0 Then
    return "q è 0.."
    Else
    return "q non è 0.."
    End If
    End Function
    e invece nel datagrid
    al posto di
    <%# Container.DataItem("Quantita") %>
    ci metti
    <%# Valuta(Container.DataItem("Quantita")) %>

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    49

    Non funziona

    Ciao, grazie del consiglio
    ma non funziona lo stesso, mi da un messaggio d'errore
    con scritto "container non declared"

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127

    Re: Non funziona

    Originariamente inviato da qwerty50
    Ciao, grazie del consiglio
    ma non funziona lo stesso, mi da un messaggio d'errore
    con scritto "container non declared"
    VVoVe: VVoVe:
    mi posti il codice completo della pagina

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    49
    <%@ Page Language="vb" AutoEventWireup="false" Codebehind="AdminDettagliProdotto.aspx.vb" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <title>Prodotti</title>
    </HEAD>
    <BODY>

    <form id="Form1" method="post" runat="server">
    <asp:datalist id="DettaglioProdotto" runat="server" DataKeyField="IDProdotto">
    <ItemTemplate>
    <table>
    <tr>
    <td>Descrizione</td>
    <td><%# DataBinder.EvalContainer.DataItem, "Descrizione") %></td>
    </tr>
    <tr>
    <td>Quantità</td>
    <td ><%# DataBinder.Eval(Container.DataItem, "Quantita") %></td>
    </tr>
    </ItemTemplate>
    </asp:datalist>
    </form>

    </BODY>
    </HTML>

    Grazie dell'interessamento

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    beh..
    già qua
    <%# DataBinder.EvalContainer.DataItem, "Descrizione") %>
    c'è un errore. dovrebbe essere..
    <%# DataBinder.Eval(Container.DataItem, "Descrizione") %>

    poi la mia funzione non l'hai messa

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    49

    Esempio

    Saresti così gentile da farmi un piccolo esempio funzionante ?

    Ti ringrazio

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127

    Re: Esempio

    Originariamente inviato da qwerty50
    Saresti così gentile da farmi un piccolo esempio funzionante ?

    Ti ringrazio
    ecco
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <title>Prodotti</title>
    <script runat="server">
    Sub Page_Load
    DettaglioProdotto.datasource=DateTime.Now.ToString("dd/MM/yy").Split("/")
    DettaglioProdotto.Databind
    End Sub
    Function Funzione (i as integer) As Integer
    return i*2
    End Function
    </script>
    </HEAD>
    <BODY>
    
    <form id="Form1" method="post" runat="server">
    <asp:datalist id="DettaglioProdotto" runat="server">
    <ItemTemplate>
    <table>
    <tr>
    <td>Numero</td>
    <td><%# Container.DataItem %></td>
    </tr>
    <tr>
    <td>Numero raddoppiato</td>
    <td ><%# Funzione(Container.DataItem) %></td>
    </tr>
    </ItemTemplate>
    </asp:datalist>
    </form>
    
    </BODY>
    </HTML>

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    49
    Ascolta, il tuo esempio funziona. A me però serve valutare il valore
    di ritorno nel codice html per stampare o meno una cella della tabella. Ho fatto così : (non guardare il significato)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <title>Prodotti</title>
    <script runat="server">
    Sub Page_Load
    DettaglioProdotto.datasource=DateTime.Now.ToString ("dd/MM/yy").Split("/")
    DettaglioProdotto.Databind
    End Sub
    Function Funzione (i as integer) As Integer
    return i*2
    End Function
    </script>
    </HEAD>
    <BODY>

    <form id="Form1" method="post" runat="server">
    <asp:datalist id="DettaglioProdotto" runat="server">
    <ItemTemplate>
    <table>
    <tr>
    <td>Numero</td>
    <td><%# Container.DataItem %></td>
    </tr>
    <tr>
    <td>Numero raddoppiato</td>
    <% If (Funzione(Container.DataItem))= 1 Then %>
    <td>Uno</td>
    <% End If %>
    </tr>
    </table>
    </ItemTemplate>
    </asp:datalist>
    </form>
    </BODY>
    </HTML>

    mi dice Container not declared

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    sbagli... alla base...
    l'if lo devi fare nella funzione

    Function Funzione (i as integer) As Integer
    if i = 1 then
    return "uno.. ke sfiga "
    else
    return i*2
    end if
    End Function

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