2 messaggi dal 15 ottobre 2011
Ciao a tutti,
sto effettuando una query collegata ad una gridview in ASP.NET, visto che devo unire necessariamente due campi del database (SQL SERVER EXPRESS 2005) ho pensato di concatenarli direttamente nella query e devo dire senza problemi.
es.

SELECT CAMPO1,(CAMPO2 + '' + CAMPO3) AS CAMPO4 FROM....

I dolori di stomaco però non sono tardati troppo :D, ad un certo punto mi è stato richiesto di mandare il valore del CAMPO3 sotto a quello del CAMPO2.
Esempio

CAMPO2=MARIO ROSSI, CAMPO3=VIA VERDI....

la visualizzazione nella gridview dovrebbe essere:

MARIO ROSSI
VIA VERDI......

ho provato a scrivere:

SELECT CAMPO1,(CAMPO2 + CHAR(13) + CHAR(10) + CAMPO3) AS CAMPO4 FROM....
ma non me lo calcola di pezza, non da errore ma lo visualizza normalmente senza fare ciò che chiedo.
Sapreste darmi una soluzione?
vi ringrazio anticipatamente.
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
il "comando" funziona sicuramente, nel senso che otterrai una colonna del resultset che contiene 2 insiemi di caratteri separati da CRLF... prova il medesimo comando in SQL Server Management Studio e vedrai che corrisponde... il problema sorge quindi piu' a valle, cioe' nella gridview, che non so se gestisca il valore CRLF come separatore di nuova riga... verifica in questo senso, in quanto lato SQL Server hai fatto tutto quanto necessario.. :)
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
678 messaggi dal 12 maggio 2001
www.idioteca.it
direi che il problema è proprio lì... stai cercando di mostrare in html dei "caratteri" non riproducibili in quel modo.
Il mio consiglio è quello di fare un replace del tuo valore in itemdatabound o altro evento o momento (vedi tu a seconda di come recuperi i dati e in ogni caso prima di mostrarli a video)
C'è un'altra alternativa, più pulita secondo me, utilizza un templatecolumn e qui disegni una tabella o mostri il testo come preferisci.

Se non ti serve più il CAMPO4, puoi anche toglierlo a questo punto.
SELECT CAMPO1, CAMPO2, CAMPO3, CAMPO2 + '' + CAMPO3 AS CAMPO4 FROM....


In alternativa
SELECT CAMPO1, CAMPO2 + '<br />' + CAMPO3 AS CAMPO4 FROM....


Caso 1
<asp:TemplateField>
            <table>
                <tr>
                    <td><%= Eval(CAMPO2) %></td>
                </tr>
                <tr>
                    <td><%= Eval(CAMPO3) %></td>
                </tr>
            </table>
        </asp:TemplateField>

Caso 2
        <asp:TemplateField>
            <%= Eval(CAMPO2) %><br /><%= Eval(CAMPO3) %>
        </asp:TemplateField>

ciao
2 messaggi dal 15 ottobre 2011
Grazie mille per la risposta, sono stato talmente indaffarato che mi sono scordato di chiudere la discussione, il problema effettivamente l'ho rispolto proprio con la replace direttamente nel gridview, ho fatto così, la soluzione più semplice che mi è venuta:

<asp:TemplateField HeaderText="Descrizione" SortExpression="CAMPO4">
<ItemTemplate>
<asp:HyperLink ID="prova" text='<%# databinder.eval (container.dataitem, "CAMPO4").tostring().replace("|","<br />") %>' .....
dove il carattere "|" l'ho inserito al posto di CHAR(13) + CHAR(10) della Query.
e funziona tutto perfettamente.

Grazie di nuovo, spero che possa essere di aiuto pure ad altri.

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.