2009-12-07 19 views
6

¿Alguien tiene una explicación de lo que está pasando? Cambiar el código 1 al código 2 soluciona el problema, aunque teóricamente no debería haber diferencia. (La teoría llega a la práctica como una calabaza golpeando una pared de ladrillos).DataGridView no se actualiza en C#


Código 1:

OutputDataGridView.DataSource = myList; 

Código 2:

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

¿Dónde en el ciclo de vida de la página se asigna el origen de datos y en qué condiciones (si los hay)? –

+0

Estoy creando un formulario simple para agregar un nuevo objeto de usuario a una lista de objetos de usuario. Inicialmente, DataSource se asigna a la lista existente de objetos de usuario. Después de rellenar el nuevo objeto Usuario de un grupo de campos de texto en el formulario, el nuevo objeto se agrega a la lista. Ninguna actualización. Traté de volver a asignar a la misma lista, es decir, Código 1. Sin actualización. Cambié al Código 2, y listo - funciona. –

Respuesta

2

Tener un vistazo a este enlace

simple DataGridView refresh question

+0

Gracias, tendré que leer esto con más detalle, ya que tengo una solución, pero no entiendo por qué funciona, hay un dicho que dice que "el problema que desaparece por sí solo vuelve por sí solo". No estoy seguro de lo que es el análogo de arreglos incomprendidos, pero tal vez "el código que se soluciona con un truco se romperá por otro truco" –

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

y ya está.

Para Ref DataSource in gridview

Cuestiones relacionadas