Retrive di dati da un repeater

lunedì 19 febbraio 2007 - 11.40

amstrad Profilo | Junior Member

Salve a tutti.
avrei bisogno di prendere un dato da un repeater e verificare il suo contenuto prima di riempire graficamente la tabella.
ho provato con un codice simile a questo

<%if (Eval("ProductImage") == "" || Eval("ProductImage") == null) {%> <img alt="" src="images/ProductImages/no_image_available_small.gif" height="90px"> <%}else {%> <img alt="" src="<%#Eval("ProductImage")%>" height="90px"> <%} %>

ma ho scoperto che il metodo eval non può essere usato per nien'altro che l'iterazione dei dati del repeater.
qualcuno sà indicarmi una via d'uscita?
Grazie

alx_81 Profilo | Guru

>Salve a tutti.
Ciao!

>avrei bisogno di prendere un dato da un repeater e verificare
>il suo contenuto prima di riempire graficamente la tabella.
>ho provato con un codice simile a questo
>
><%if (Eval("ProductImage") == "" || Eval("ProductImage") ==
>null)
>{%>
><img alt="" src="images/ProductImages/no_image_available_small.gif"
>height="90px">
><%}else {%>
><img alt="" src="<%#Eval("ProductImage")%>" height="90px">
><%} %>
>
>ma ho scoperto che il metodo eval non può essere usato per nien'altro
>che l'iterazione dei dati del repeater.
>qualcuno sà indicarmi una via d'uscita?

Utilizza l'evento ItemDataBound del repeater.
Tramite questo evento, puoi accedere alla sorgente del repeater, per impostare come meglio credi i tuoi items..

>Grazie
Di nulla!

Alx81 =)

http://blogs.dotnethell.it/suxstellino

amstrad Profilo | Junior Member

se non ho capito male "itemDataBound" permette di visualizzare i dati prima che vengano renderizzati.
nel mio caso però ho un repeater impostato con 4 campi, come faccio a dirgli che se uno specifico campo è vuoto deve sostituirlo con una stringa fissa?
considerando anche il fatto che tutta l'operazione viene svolta senza una riga di codice ne .cs ma scrivendo tutto nell'aspx

alx_81 Profilo | Guru

>se non ho capito male "itemDataBound" permette di visualizzare
>i dati prima che vengano renderizzati.
ti rende disponibili i dati della sorgente prima che gli stessi vengano renderizzati..

>nel mio caso però ho un repeater impostato con 4 campi, come
>faccio a dirgli che se uno specifico campo è vuoto deve sostituirlo
>con una stringa fissa?
Puoi controllare nell'evento che ti ho indicato il valore di un particolare campo del tuo DataRowView (preso da e.item.DataItem). Se è vuoto allora imposti la stringa che vuoi tu nella cella di output..

>considerando anche il fatto che tutta l'operazione viene svolta
>senza una riga di codice ne .cs ma scrivendo tutto nell'aspx
E' necessario questo?

Altrimenti, la cosa più semplice è agire direttamente lato database..
Se utilizzi SQL server puoi usufruire della funzione ISNULL, controllando se il valore di un campo è null e in quel caso utilizzare la stringa fissa che ti serve. Oppure con il CASE, puoi controllare se il campo interessato è stringa vuota, e in quel caso impostare un valore fisso.

ISNULL function
http://msdn2.microsoft.com/en-us/library/ms184325.aspx

CASE
http://msdn2.microsoft.com/en-us/library/ms181765.aspx


Alx81 =)

http://blogs.dotnethell.it/suxstellino

amstrad Profilo | Junior Member

grazie mille
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5