TIP: Onzichtbare kolommen opslaan met een GridView-control

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());
}

One thought on “TIP: Onzichtbare kolommen opslaan met een GridView-control

  1. Jan van Toor

    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

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *