28 messaggi dal 23 novembre 2004
Salve a tutti,
ho un sito in cui l'utente interroga un database access attraverso una serie di parametri che fornisce seconedo le sue esigenze.
Il sistema genera una stringa sql analizzando i criteri usati e poi produce un dataset per il bind con un datagrid.
Il mio problema è che il mio cliente vorrebbe che nel datagrid apparisse una colonna con un campo formato da una sola lettera che a seconda della valorizzazione di alcun campi specifici fosse diversa (ad esempio A se la data inizio è vuota, B se compilata, etc,).

Come posso fare?
Mi pare che la funzione iif() non si possa usare nelle query SQL fuori dagli oggetti ms access.
Spero di essere stato chiaro.

Grazie.
501 messaggi dal 09 giugno 2006
Contributi
Ciao.

La funzione IIF può essere utilizzata all'interno di una query basata sun database MDB (Jet Engine). Es:

SELECT Field1, IIF(IsNull(Field2), "Nullo", Field2), Field3
FROM miaTabella

In ogni caso puoi anche intervenire a livello di DataGrid creando una colonna:

<asp:DataGrid>
[...]
<Columns>
<asp:TemplateColumn HeaderText="Tiolo Colonna">
<ItemTemplate>
<%# Container.DataItem("CampoData") %>
</ItemTemplate>
</asp:TemplateColumn>

</Columns>
[...]
</asp:DataGrid>

Anzichè "Container.DataItem("CampoData")" potresti richiamare una tua funzione scritta nella pagina (nella classe della pagina). Ecco un veloce esempio scritto a puro titolo dimostrativo:

' CODICE DA INSERIRE ALL'INTERNO DELLA CLASSE CHE GESTISCE LA PAGINA ASPX
Public Function DaDataALettera(byval data as object) As String
If data is nothing orelse data is DBNUll.Value then
return "A"
else
return "B"
end if
End Function

Quindi la precedente istruzione associata a ItemTamplate:

<%# Container.DataItem("CampoData") %>

diventa:

<%# Me.DaDataALettera(Container.DataItem("CampoData")) %>

Spero sia tutto chiaro.

Ciao.

.:. Marcello Rutter .:.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.