Datagridview : aggiungere una checkbox column (unbound)

lunedì 01 ottobre 2007 - 14.59

liuc Profilo | Junior Member

Ciao a tutti.
Sto cercando di aggiungere una colonna di tipo checkbox (boolean) alla mia datagridview : lo scopo quello di dare all'utente la possibilità di selezionare le righe in esso contenute tramite tali checkbox.
Ho provato ad aggiungere direttamente una colonna al datagridview da design ma le checkbox non vengono mai "ceccate" anche se la colonna non è di tipo readonly.
Ho provato anche ad aggiungere ddirettamente una colonna alla tabella utilizzata per bindare la griglia ma senza risultato (la tabella fa parte di un dataset tipizzato restituito da un webserver).

Sapreste darmi qualche indicazione? qualche esempio del genere?
grazie.

SSUPERPIPPO Profilo | Guru

>Ciao a tutti.

Ciao

>Sto cercando di aggiungere una colonna di tipo checkbox (boolean) alla mia datagridview : lo scopo quello di dare all'utente la >possibilità di selezionare le righe in esso contenute tramite tali checkbox.
>Ho provato ad aggiungere direttamente una colonna al datagridview da design ma le checkbox non vengono mai "ceccate" anche >se la colonna non è di tipo readonly.
>Ho provato anche ad aggiungere ddirettamente una colonna alla tabella utilizzata per bindare la griglia ma senza risultato (la >tabella fa parte di un dataset tipizzato restituito da un webserver).

Molto strano! Io ho più volte utililzzato questo approccio nei miei progetti e non ho mai avuto problemi. Normalmente aggiungo a designtime la colonna di tipo checkbox. Via codice poi effettuo il binding al DataSet e tolgo il readonly dalla colonna checkbox.

Bisognerebbe vedere come hai effettuato il databinding...




http://blogs.dotnethell.it/alebadalin

liuc Profilo | Junior Member

La colonna è aggiunta da design.
Aggiungo che la griglia è in un controllo utente da me creato (il controllo contiene solo la griglia in quetione, la quale mostra alcune colonne piuttosto che altre in base alla modaluità con cui viene richiamata).
Questo è il codice che uso per bindare la griglia.
Public Sub RefreshContent()

LoadDatiContatti()


Dim view As DataView
Dim SortExpression As String


view = AppDomain.CurrentDomain.GetData("ViewContatti")
SortExpression = AppDomain.CurrentDomain.GetData("ViewContatti_SortExpression")
If (SortExpression Is Nothing) OrElse (SortExpression = "") Then
SortExpression = "Archiviacome asc"
End If

AppDomain.CurrentDomain.SetData("ViewContatti", view)
Me.BindingSourceContatti.DataSource = view
dgContactList.ClearSelection()

AddHandler dgContactList.SelectionChanged, AddressOf dgContactList_SelectionChanged
If Me.ModalitaDiFunzionamento = ContactList_ModalitaFunzionamento.MODALITA_SELEZIONE_MEMBRI_LISTA Then
AddHandler dgContactList.CellDoubleClick, AddressOf dgContactList_CellDoubleClick
End If
End Sub




Private Sub LoadDatiContatti()
Dim view As New DataView
view = AppDomain.CurrentDomain.GetData("ViewContatti")

If view Is Nothing Then
Me.dsContatti = AppDomain.CurrentDomain.GetData("dsContatti")
If Me.dsContatti Is Nothing Then
Dim ws As New wsContatti.wsContatto
Me.dsContatti = ws.GetData
AppDomain.CurrentDomain.SetData("dsContatti", dsContatti)
End If
view = New DataView(dsContatti.Table_CONTATTO)
AppDomain.CurrentDomain.SetData("ViewContatti", view)
Else
Me.dsContatti = view.Table.DataSet
End If
End Sub

SSUPERPIPPO Profilo | Guru

In effetti in apparenza sembrerebbe tutto corretto!

Provo a simulare la cosa da me e ti faccio sapere...


http://blogs.dotnethell.it/alebadalin

liuc Profilo | Junior Member

Risolto...
rimuovevo si la readonly della colonna ma era rimasta impostat la readonly della griglia.

Mi resta una curiosità soltanto : perchè aggiungendo una colonna di tipo boolean alla tabella del dataset tipizzato (dataset restituito da un webservice) questa non viene visualizzata automaticamente nella griglia ? Devo comunque aggiungere la colonna manualmente e poi impostare la PropertyName col nome della colonna aggiunta?

grazie

SSUPERPIPPO Profilo | Guru

Ho provato da me e funziona!
Non è che hai impostato a read only l'intero DataGridView?


http://blogs.dotnethell.it/alebadalin

SSUPERPIPPO Profilo | Guru

opsss.... non avevo visto il tuo ultimo msg.


http://blogs.dotnethell.it/alebadalin

SSUPERPIPPO Profilo | Guru

Direi proprio di no.
Se il tuo dataset contiene un campo di tipo bit (true/false) allora il datagridview lo deve visualizzare come checkbox...
Controlla bene il tuo DataSet...

http://blogs.dotnethell.it/alebadalin
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