# Wednesday, September 20, 2006
« Geen database diagram kunnen maken in SQ... | Main | Dealing with invisible columns in a Grid... »

Als je kolommen onzichtbaar maakt in een GridView-control worden de waardes daarvan niet meegestuurd als je een update gaat doen. Als je werkt met CollisionDetection="CompareValues" betekent dit dat de update niet goed gaat als de stored procedure of functie die je gebruikt de originele waardes ook verwacht.

De oplossing:
- Voeg de kolommen die je niet zichtbaar maakt (of uberhaupt niet invoegt) toe aan de DataKeyNames-eigenschap, gescheiden door een komma.
- Maak een EventHandler voor GridView.RowUpdating en zet daar de onderstaande code in. Hiermee worden alle keys toegevoegd aan de oude en nieuwe waardes (die voor die kolommen toch niet verandert).

IDictionaryEnumerator restoreOldValues = e.Keys.GetEnumerator();
while (restoreOldValues.MoveNext())

   e.OldValues.Add(restoreOldValues.Key.ToString(), restoreOldValues.Value.ToString());
   e.NewValues.Add(restoreOldValues.Key.ToString(), restoreOldValues.Value.ToString());
}

Thursday, April 02, 2009 11:40:20 AM (W. Europe Standard Time, UTC+01:00)
Michiel,

Bedankt voor de hint over het opslaan van onzichtbare kolommen in gridviews. Ik zie hem pas 3 jaar later maar je hebt me héél veel werk bespaard.

Mvg
Jan van Toor
Jan van Toor
All comments require the approval of the site owner before being displayed.
Name
E-mail
Home page

Comment (Some html is allowed: a@href@title, strike) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Enter the code shown (prevents robots):

Live Comment Preview