2010-03-29 4 views
0

J'utilise un GridView pour représenter les données d'une table dans ma base de données. Le GridView a des champs de modèle dont le contenu est déterminé avant d'afficher la grille (j'utilise l'événement RowDataBound pour déterminer le contenu des champs de modèle avant d'afficher le GridView).Gridview à l'intérieur UpdatePanel refresh

La page affiche une liste d'enregistrements à partir des enregistrements de table, puis le processus d'enregistrement démarre. Une fois le processus terminé, les champs du modèle doivent être mis à jour.

Comment puis-je actualiser automatiquement GridView une fois le processus terminé? il convient de noter que le GridView est contenu dans un contrôle et que je scrute continuellement le serveur en utilisant un contrôle Timer qui exécute "GridView1.DataBind()" au niveau du serveur toutes les 60 secondes.

étant donné que GridView se trouve dans un UpdatePanel, l'appel de la méthode DataBind() ne semble pas appeler l'événement RowDataBound.

Comment puis-je résoudre ce problème?

Répondre

1

Oui, cela suffit pour appeler la méthode GridView1.DataBind() dans un intervalle de temps particulier à l'aide du contrôle Timer, mais avant d'appeler la méthode DataBind(), avez-vous affecté la source de données mise à jour pour Gridview? Par exemple; Lorsque la page est chargée, vous dessinez la grille en utilisant un jeu de données nommé "EmployeeDS". Par conséquent, après une mise à jour, vous devez mettre à jour l'ensemble de données local comme ci-dessous dans la vue grid, puis appeler la méthode DataBind().

GridView1.DataSource = EmployeeDS.Table[0]; 
GridView1.DataBind(); 
+0

la source de données reste la même. c'est juste que les données ont changé. comment puis-je faire face à cela? – Attilah