Toon posts:

[c#] Datagrid - filteren van weer te geven informatie.*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Stel je hebt 2 datagrids in een master-detail verhouding op een windows form. Hoe kan je dan de informatie filteren in de master datagrid, zonder de relatie tussen die 2 te verbreken?

Met een dataview kan volgens mij niet, omdat die view dan je datasource wordt, en een dataview bevat maar 1 tabel (dus geen relaties).

Groeten, Sgaap

  • whoami
  • Registratie: December 2000
  • Laatst online: 02-05 14:39
Een dataview bevat geen tabel. Een DataView heeft gewoon een reference naar de Tabel waarop hij een view is.

Je zal toch wel een filter moeten plaatsen op de data-source afaik.

[ Voor 25% gewijzigd door whoami op 10-08-2005 16:35 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ok, hoe dan? Als je een dataset wil filteren, kan je gebruik maken van de DefaultViewManager, maar ook deze moet je als datasource meegeven aan je datagrid, waardoor je master en detail niet meer dezelfde instantie van de datasource hebben...

  • whoami
  • Registratie: December 2000
  • Laatst online: 02-05 14:39
Jouw DataSet heeft toch een DefaultViewManager (DataViewManager), en die zou voor iedere tabel in je dataset een DataViewSetting oid moeten hebben.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ja, dat klopt, alleen als je daar bijvoorbeeld de property "sort" van veranderd, gebeurd er niets. Je moet dan eerst die dataviewmanager als datasource binden voordat je een sortering of filtering ziet. Dat verbreekt weer de relatie met de detailgrid. Ik heb al uren gezocht maar ik kan ook geen enkel voorbeeld op internet vinden met 2 datagrids in master/detail icm filtering...

Verwijderd

Topicstarter
Ik ben er eindelijk uit... Je moet aan elke grid dezelfde instantie van je dataviewmanager knopen. Daarna kan je aan je DataviewManager.DataViewSettings[tabelnaam] een nieuwe instantie van een dataviewmanager knopen. Dat ziet er dan zo uit:

code:
1
2
DataViewManager dataviewManager = new DataViewManager(huidigeDataset);
dataviewManager.DataViewSettings[tabelnaam].RowFilter = string.Format("colomnaam LIKE 'waarde%'");


Deze nieuwe dataviewmanager moet dan weer opnieuw als datasource gebind worden aan je grid(s)

[ Voor 7% gewijzigd door Verwijderd op 22-08-2005 09:36 . Reden: eigen objecten vervangen door nederlandse namen ]

Pagina: 1