Datagridview errore durante l'ordinamento record

lunedì 25 giugno 2007 - 11.42

BangBangMan Profilo | Newbie

Salve!

Ho un'altro problema con la Datagridview.

Ho questa griglia dove alcune righe a seconda delle scelete fatte dall'utente vengono nascoste o mostrate.

Al momento in cui si effettua un ordinamento dei record per colonna(cliccando sul nome della colonna per intendersi) il sistema genera un errore soltanto se ci sono delle righe invisibili e se l'ordinamento è stato effettuato su delle colonne numeriche.

L'errore è il seguente:

"Impossibile rendere invisibile la riga associata con la posizione del gestore della valuta."

In particolare l'errore viene generato quando si clicca per la seconda volta sulla stessa colonna(quindi per fare un ordinamento decrescente)...

Vi è mai capitato?
Sapreste aiutarmi?

Cteniza Profilo | Guru

Magari potresti provare, se non l'hai già fatto inserire un BindingSource/Dataview tra il dataset e il datagridview, intercettare il click sulla colonna e successivamente impostare il sort sul BindingSource/DatavView
Bastianello Luciano - MBS CP Navision Development
Software Consultant - Apprentice Sorcerer
http://community.visual-basic.it/LucianoB/
MSN: cteniza@hotmail.com

BangBangMan Profilo | Newbie

Ho provato ha farlo adesso che me lo hai detto ma sfortunatamente il risultato è il medesimo.

In più ho notato che durante i riordinamenti per una frazione di secondo rippaiono i record invisibili...sto valutando di eliminare fisicamente i record invisibili e di reinserirli al volo al momento della visualizzazione...

che dite? sarà performante?

dilaora Profilo | Newbie

Prima di rendere invisibile la riga prova questo:

in VB.net:

DataGridView1.CurrentCell = Nothing
oppure

Dim cm As CurrencyManager = CType(BindingContext.Item(DataGridView1.DataSource), CurrencyManager)
cm.SuspendBinding()

in C#:
DataGridView1.CurrentCell = null;
oppure
CurrencyManager cm = (CurrencyManager)BindingContext[datagridview1.DataSource];
cm.SuspendBinding();

Facci sapere

Navaren Profilo | Newbie

Grazie per la soluzione !
Ho avuto lo stesso problema ed è stato sufficiente inserire l'istruzione:
"DataGridView2.CurrentCell = Nothing"
Prima di:
"DataGridView2.Rows(R).Visible = False"
ed ho risolto !
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