Repeater e databind come condizionare il layout

sabato 02 giugno 2007 - 15.15

gigi90 Profilo | Senior Member

Salve a tutti, ho utilizzato un repeater per presentare in modo formattato dati provenienti da un database, adesso vorrei sapere se esiste un modo per rendere la dormattazione di un repeater condizionata(in base al valore di un campo della sorgente dati, cioè mettere ad esempio un if, se il dato è uguale ad un valore mi associa un testo altrimenti, mi associa un altro, ho risolto in un certo senso utilizzando l'operatore ternario di C# ? nel modo seguente:

<AlternatingItemTemplate>
<tr>
<td>
<%# (DataBinder.Eval(Container.DataItem,"Stato").ToString()==true.ToString())? "Ciao":"ok" %>
</td>
</tr>
</AlternatingItemTemplate>
ma credo che ci sia un altro modo per fare una cosa del genere, ad esempio se dovrei fare una cosa del genere in VB.Net, potete dirmi come fare??? Grazie!!

alx_81 Profilo | Guru

>Salve a tutti,
Ciao!

>ho utilizzato un repeater per presentare in modo
>formattato dati provenienti da un database, adesso vorrei sapere
>se esiste un modo per rendere la dormattazione di un repeater
>condizionata(in base al valore di un campo della sorgente dati,
>cioè mettere ad esempio un if, se il dato è uguale ad un valore
>mi associa un testo altrimenti, mi associa un altro, ho risolto
>in un certo senso utilizzando l'operatore ternario di C# ? nel
>modo seguente:
>
> <AlternatingItemTemplate>
> <tr>
> <td>
><%# (DataBinder.Eval(Container.DataItem,"Stato").ToString()==true.ToString())?
>"Ciao":"ok" %>
> </td>
> </tr>
> </AlternatingItemTemplate>
>ma credo che ci sia un altro modo per fare una cosa del genere,
>ad esempio se dovrei fare una cosa del genere in VB.Net, potete
>dirmi come fare??? Grazie!!
Quello che hai utilizzato tu può essere un metodo. Ma di solito preferisco mettere la logica della gestione del dato direttamente nel Data Layer. Mi spiego.. Siccome l'informazione proviene dal database, preferisco mettere una case nella query che gestisca l'output, in modo da dover intervenire il meno possibile sull'applicazione.
Immagina ad esempio che il testo da visualizzare cambi se cambia la logica su database, oppure se il campo stato può assumere nuovi valori. Ovunque metti questa logica dovrai intervenire per correggerla.. Al contrario, se sei su database, basta modificare la query e sei sicuro che l'applicazione si aggrapperà sempre al risultato di output, strutturalmente inalterato.
In questo caso direi che ti puoi spostare sul DB. Ovviamente, ci sono casi in cui è forse meglio rimanere sull'applicazione, ma nel tuo caso, sposterei il tutto su database.
Alx81 =)

http://blogs.dotnethell.it/suxstellino

gigi90 Profilo | Senior Member

Grazie per la tua analisi, infatti credo che mi creerò una stored procedure che mi elabora il risultato della query!!
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