Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,109

    [VB.NET] Colonne non associate su DataGridView collegato a BindingSource

    Ciao a tutti,
    per questioni di filtri su recordset molto numerosi sto popolando una datagridview tramite un databinding che funge da ponte con una datatable (a sua volta popolata con un tableAdapter).
    Tutto funziona a meraviglia ma ho un problema...ho personalizzato la datagridview inserendo 2 colonne immagine (che andranno a fungere da "visualizzazione" per 2 campi boolean) che non sono associate a dati (dacchè non ho dati di natura bitmap nel mio db).

    Normalmente (quando popolavo le DGV manualmente) era molto semplice associate la bitmap ma in questo caso (visto che sto popolando la DGV in automatico) non so come intervenire.

    Esiste qualche metodo? Qualcuno ci si è già scontrato con questo problema?

    Grazie a tutti e Buona pasqua

  2. #2
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,109
    Non si può fare?

  3. #3
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,109
    Posso fare un up? Sono ancora bloccata su questo problema? Possibile non si possa fare?

  4. #4
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,109
    Ho provato così:

    codice:
        Private Sub dgvMov_RowValidated(sender As Object, e As DataGridViewCellEventArgs) Handles dgvMov.RowValidated
            Dim miaDGV As DataGridView = sender
            If (e.RowIndex > -1) Then
                Dim riga As DataGridViewRow = miaDGV.Rows(e.RowIndex)
                Dim tipoMov As Boolean = CType(riga.Cells(3).Value, Boolean)
                If tipoMov = True Then
                    riga.Cells(4).Value = My.Resources.del16
                Else
                    riga.Cells(4).Value = My.Resources.ok16
                End If
            End If
        End Sub
    pensando che l'evento validated venisse eseguito per ogni riga dopo il binding ma mi sbaglio evidemente perchè la SUB funziona solo dopo che seleziono e deseleziono la mia riga (ho la selezione impostata su intera riga)

    Io e mio fratello ci stiamo sbattendo la testa da settimane su sta cosa

  5. #5
    Ciao, se non ho capito male, tu hai un datatable (disconnesso), prima di associarlo alla gridview, gli devi aggiungere due campi (che devono contenere le immagini), e successivamente, ciclando tutte le righe del datatable (tipo For Each row In dt.Rows), controlli il valore del campo x e in base a quello aggiungi l'immagine alla colonna che hai aggiunto.... è più facile a farlo che a dirlo...
    Jupynet

  6. #6
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,109
    Quote Originariamente inviata da jupynet Visualizza il messaggio
    Ciao, se non ho capito male, tu hai un datatable (disconnesso), prima di associarlo alla gridview, gli devi aggiungere due campi (che devono contenere le immagini), e successivamente, ciclando tutte le righe del datatable (tipo For Each row In dt.Rows), controlli il valore del campo x e in base a quello aggiungi l'immagine alla colonna che hai aggiunto.... è più facile a farlo che a dirlo...
    Il datatable lo riempio col fill del tableadapter, il problema è che voglio evitare i cicli perché si parla anche di 20.000 record e mi rallenta tutto!
    L'ideale sarebbe poter agire durante il metodo fill del tableadapter ma non so se e come si può fare...

  7. #7
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,109
    Allora per adesso ho risolt usando l'evento RowStateChanged.

    E' chiaramente un rattoppo ma almeno funziona! Agisco sulla singola riga dopo il binding della stessa (quindi ho i dati nelle celle a differenza di rowAdded, rowValidated ecc ecc) a quanto pare!

    codice:
        Private Sub miaDGV_RowStateChanged(sender As Object, e As DataGridViewRowStateChangedEventArgs) Handles miaDGV.RowStateChanged
            If e.Row.Cells(3).Value = True Then
                e.Row.Cells(4).Value = My.Resources.redArrow16
            Else
                e.Row.Cells(4).Value = My.Resources.greenArrow16
            End If
        End Sub

    Non sono molto pratica di questo evento e tantomento di come strutturalmente lavori un BindingSource quindi sono andata a tentativi e nel vedere che tutto funziona mi sono fermata.

    Però se qualcuno più informato ed esperto volesse sollevarmi qualche dubbio o possibile problema futuro dall'utilizzo di questo metodo gliene sarei grata!

    Ciao a tutti!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.