Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    personalizzare Datagrid

    Credo che questa sia una delle azioni base , che però con asp.net non riesco a fare mentre con asp ci mettevo un'attimo

    Credo un dataset e poi "bindo" una datagrid con i template column

    ora io semplicemente vorrei che in una delle colonne contenete delle date il carattere fosse in grassetto se ad esempio < al 1/1/2000 e normale in tutti gli altri casi.

    come faccio ?

    per il momento ho trovato che così setto a bold tutta la colonna !
    DataGrid1.Columns(2).ItemStyle.Font.Bold = True
    Frate Priore: "È Lucifero in persona!"
    Trinità: "Lo conosci?"
    Bambino: "Mai sentito nominare, deve essere un professionista dell'est"

  2. #2
    Di nuovo ciao a tutti ! per visualizzare il campo in bold diciamo che ho risolto ... basta aggiungere brutalmente al testo che finirebbe nella cella ....

    Questo però mi ha dato lo spunto per un passo ulteriore, come faccio a cambiare il colore di sfondo di una singola cella in base al valore che in essa và inserito ?

    per il momento sono arrivato al 90% della soluzione del problema con questo
    -----------------------------------------
    Private Sub DataGrid1_ItemCreated(ByVal sender As Object, _
    ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) _
    Handles DataGrid1.ItemCreated
    If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
    If e.Item.Cells(3).Text = "09/04/2002" Then
    e.Item.Cells(3).CssClass = "sfondoverde"
    End If
    End If
    End Sub
    -----------------------------------------

    il che funzionerebbe anche... solamete che
    1) devo riuscire a convertire il testo della cella in data per confrontarlo con altri valori data (e non come faccio io nell'esempio come stringa, che tanto poi non funziona lo stesso)

    avete qualche idea ?
    Frate Priore: "È Lucifero in persona!"
    Trinità: "Lo conosci?"
    Bambino: "Mai sentito nominare, deve essere un professionista dell'est"

  3. #3
    CDate dovrebbe convertirlo nel formato Date.


    poi come lo vuoi confrontare?

  4. #4
    Grazie Daniele80 intanto !

    mah confrontalo anche solo per semplicità con 01/01/2003, un valore "fisso".

    poi se funziona me la complico io la faccenda ... il fatto che non funzia !

    prova anche con un campo numerico se vuoi .. se hai un datagrid tra i tuoi lavori comodo prova, lo scopo è colorare lo sfondo di cella if ...... cioè dipendente da quello che c'è dentro

    come lo colori è lo stesso o con bgcolor oppure (meglio penso) con un css, quindi css diversi a seconda delle celle
    Frate Priore: "È Lucifero in persona!"
    Trinità: "Lo conosci?"
    Bambino: "Mai sentito nominare, deve essere un professionista dell'est"

  5. #5
    cmq per fare il confronto non hai bisogno di trasformare la stringa in Data

    il confronto funziona anche se la variabile è data e mentre quella di confronto è stringa:
    if var_data= "01/12/2003" then


    poi per colorare la cella non so quali sono i comandi.



    <asp:Label id="Data" runat="server" Text='<%# Controllo_Data(DataBinder.Eval(Container.DataItem, "Data")) %>' />

    nella funzione controllo data fai il confronto e poi non so....ancora non ho capito bene quello che devi fare.

  6. #6
    quello che devo fare te lo spiego in asp normale

    <table>
    <%
    While NOT recordnet-mio.EOF
    %>
    <tr>
    <% if Cint(recordnet-mio.Fields.Item("val").Value) > 30 then
    response.write"<TD class=""verde"">" & recordnet-mio.Fields.Item("val").Value & "</td>""
    else
    response.write"<TD class=""giallo"">" & recordnet-mio.Fields.Item("val").Value & "</td>"" %>
    </tr>
    <% Wend%>
    </table>


    adesso lasciamo perdere eventuali virgolette o cavolatine del genere... comunque avete capito...

    Voglio cambiare lo sfondo (colore) della cella di tabella che mi viene generata dal datagrid quando la invia al browser secondo una condizione "se il valore maggiore di, minore di, uguale etc etc"
    Frate Priore: "È Lucifero in persona!"
    Trinità: "Lo conosci?"
    Bambino: "Mai sentito nominare, deve essere un professionista dell'est"

  7. #7
    <td bgcolor="<%# Mia_Funzione(Container.....) %>...</td>

    public function Mia_Funzione(byVal valore as ...) as string
    if ...
    return Red
    else
    return black
    end if
    end function



    prova con una cosa del genere, dovrebbe andare

  8. #8
    esatto è quello che mi serve e pure io avevo provato una cosa del genere ...

    ma qui siamo in asp.net , non ho la "<TD>" etc in cui posso settare direttamente lì il colore (o css)

    io ho un bel datagrid con le mie <asp: BoundColumn headerText="pippero" DataField="valore" etc></asp: BoundColumn>

    ho provato a mettergli l'equivalente di bgcolor per la colonna asp con dentro ="<%# funzionePippero....%>" e farmi restituire il valore ma non gli piace tanto !

    sono convinto che la strada giusta sia settargli il colore da codebehind tipo
    -----------------------------------------
    Private Sub DataGrid1_ItemCreated(ByVal sender As Object, _
    ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) _
    Handles DataGrid1.ItemCreated
    If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
    If e.Item.Cells(3).Text = "09/04/2002" Then
    e.Item.Cells(3).CssClass = "sfondoverde"
    End If
    End If
    End Sub
    -----------------------------------------

    ma qui come avevo detto sopra và a farsi friggere il controllo if.. che non riesco a realizzare ....
    ho provato anche con campi numerici e Cint() .. ma niente
    Frate Priore: "È Lucifero in persona!"
    Trinità: "Lo conosci?"
    Bambino: "Mai sentito nominare, deve essere un professionista dell'est"

  9. #9
    il datagrid non è personalizzabile come il repeater?

    perchè se lo è una cosa del genere è fattibile. Poi per gli apici si trova la soluzione, io una volta cosi per provare l'ho fatta una cosa simile.

  10. #10
    eh effettivamente a sto punto era meglio se facevo un repeater che è + "asp like" la cosa.

    Tuttavia mi sembra una cosa banale e mi sono intestardito di farla col Datagrid !
    Del resto quando avessi bisogno di paginazione e ordinamento lo dovrei usare per forza quindi.... Meglio imparare come si fà subito
    Frate Priore: "È Lucifero in persona!"
    Trinità: "Lo conosci?"
    Bambino: "Mai sentito nominare, deve essere un professionista dell'est"

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.