Hi allemaal, misschien is de oplossing voor mijn probleem heel erg simpel, maar ik kom maar zelf niet tot een oplossing. Heb wel al een idee, maar ik vermoed dat ik me daar onnodig veel werk mee op de hals haal.
Situatie is als volgt; ik heb een DataGridView, Hierin zijn een X aantal kolommen aangemaakt. Sommigen komen regelrecht uit de database, en anderen zijn Checkbox velden welke niet aan de DB gekoppeld zijn. Het koppelen van de DataSet aan de GridView vult ook alleen de velden die gekoppeld zijn (logisch
)... en so far so good. De GridView heeft overigens Adding, Editing, Deleting en Column Reordering op false staan.
Hier begint ook echter mijn probleem. Na het vullen was mijn 1ste gedachte om middels een foreach loop door elke Row in de GridView te lopen, en afhankelijk van de waarden die ik uit de cellen A, B en C lees de Checkbox cellen visible op true of false te zetten. Dit mag van VS al niet want het zijn alleen maar read-only velden. 2de probleem waar ik dán tegenop loop is, omdat de control niet editable is mogen gebruikers geen gegevens in de datagridview editen, zodoende kunnen de Checkbox velden ook niet gewijzigd worden. Als ik echter de hele control op Editable zet, dan mogen ook de velden uit de database gewijzigd worden, iets wat ik dus wil voorkomen.... en zoals gezegd, per cell de EditType wijzigen mag niet omdat deze ReadOnly is. (Bovendien krijg ik dan een compiler error die aangeeft dat de typen niet overeen komen, maar dit is nog wel op te losse met typecasten)
Om toch even kort wat code te laten zien heb ik het volgende (uiteraarde een ingekorte & versimpelde variant):
Mijn vraag is, is er een optie om dit wel te doen? Of zal ik aan de slag moeten gaan om een Custom DataGridView te maken? Ik ga iig nu eens kijken of ik de EditType en Visible property kan overriden, maar makkelijk zal dat niet worden lijkt me zo...
Dus als iemand iets weet waarmee ik aan de slag kan zou ik hem (of haar
) zeer dankbaar zijn!
Google leert me voorlopig alleen maar dát de velden ReadOnly zijn, en helemaal niets over een eventuele edit optie.... zoek ik nou niet goed? Of is het gewoon niet mogelijk met de DataGridView?
Edit: Hier, hier en hier is te zien dat gebruiker TR ook al geen oplossing voor het Edit probleem kan vinden.
Situatie is als volgt; ik heb een DataGridView, Hierin zijn een X aantal kolommen aangemaakt. Sommigen komen regelrecht uit de database, en anderen zijn Checkbox velden welke niet aan de DB gekoppeld zijn. Het koppelen van de DataSet aan de GridView vult ook alleen de velden die gekoppeld zijn (logisch
Hier begint ook echter mijn probleem. Na het vullen was mijn 1ste gedachte om middels een foreach loop door elke Row in de GridView te lopen, en afhankelijk van de waarden die ik uit de cellen A, B en C lees de Checkbox cellen visible op true of false te zetten. Dit mag van VS al niet want het zijn alleen maar read-only velden. 2de probleem waar ik dán tegenop loop is, omdat de control niet editable is mogen gebruikers geen gegevens in de datagridview editen, zodoende kunnen de Checkbox velden ook niet gewijzigd worden. Als ik echter de hele control op Editable zet, dan mogen ook de velden uit de database gewijzigd worden, iets wat ik dus wil voorkomen.... en zoals gezegd, per cell de EditType wijzigen mag niet omdat deze ReadOnly is. (Bovendien krijg ik dan een compiler error die aangeeft dat de typen niet overeen komen, maar dit is nog wel op te losse met typecasten)
Om toch even kort wat code te laten zien heb ik het volgende (uiteraarde een ingekorte & versimpelde variant):
C#:
1
2
3
4
5
6
7
8
9
10
11
| foreach (DataGridViewRow datarow in gvPersData.Rows) { if (datarow.Cells["A"].Value == "X" && datarow.Cells["B"].Value == "Y") // de Checkbox cell Editable maken, maar dit is een ReadOnly property datarow.Cells["colChkAllowUser"].EditType = DataGridViewEditMode.EditOnEnter; else // Aangezien de cellen standaard visible zijn hoef ik ze alleen // maar op visible = false te zetten maar omdat het een // ReadOnly property is mag dit dus ook niet. datarow.Cells["colChkAllowUser"].Visible = false; } |
Mijn vraag is, is er een optie om dit wel te doen? Of zal ik aan de slag moeten gaan om een Custom DataGridView te maken? Ik ga iig nu eens kijken of ik de EditType en Visible property kan overriden, maar makkelijk zal dat niet worden lijkt me zo...
Google leert me voorlopig alleen maar dát de velden ReadOnly zijn, en helemaal niets over een eventuele edit optie.... zoek ik nou niet goed? Of is het gewoon niet mogelijk met de DataGridView?
Edit: Hier, hier en hier is te zien dat gebruiker TR ook al geen oplossing voor het Edit probleem kan vinden.
[ Voor 11% gewijzigd door F-Tim op 11-02-2008 09:56 . Reden: Aantal URL's toevoegen. ]
Wanna play?