2009-12-07 4 views
6

Quelqu'un at-il une explication de ce qui se passe? Changer le code 1 en code 2 résout le problème - bien qu'il n'y ait théoriquement aucune différence. (La théorie frappe la pratique comme une citrouille frappant un mur de briques).DataGridView ne se met pas à jour dans C#


Code 1:

OutputDataGridView.DataSource = myList; 

Code 2:

OutputDataGridView.DataSource = null; 
OutputDataGridView.DataSource = myList; 
+0

Où dans le cycle de vie de la page est la source de données assignée et dans quelles conditions (le cas échéant)? –

+0

Je crée un formulaire simple pour ajouter un nouvel objet Utilisateur à une liste d'objets Utilisateur. Initialement, DataSource est affecté à la liste existante des objets Utilisateur. Après avoir rempli le nouvel objet Utilisateur à partir d'un tas de champs de texte dans le formulaire, le nouvel objet est ajouté à la liste. Pas de mise à jour. J'ai essayé de réaffecter à la même liste - c'est-à-dire le code 1. Aucune mise à jour. J'ai changé pour le code 2, et voila - cela fonctionne. –

Répondre

2

Jetez un oeil à ce lien

simple DataGridView refresh question

+0

Merci, je vais devoir les lire plus en détail car j'ai déjà une solution mais je ne comprends pas pourquoi cela fonctionne - il y a un dicton qui dit que "le problème qui disparaît tout seul revient tout seul". Je ne suis pas sûr de ce que l'analogique est pour les correctifs mal compris, mais peut-être "le code qui est corrigé avec un hack sera brisé par un autre hack" –

1
protected void btnWhateverClick(object sender, EventArgs e) 
{ 
    myGridView.DataSourceID = String.Empty; 
    myGridView.DataSource = new int[0]; 
    myGridView.DataBind(); 
} 

et vous avez terminé.

Pour Réf DataSource in gridview

Questions connexes