2009-06-16 4 views

Répondre

1

Commencez par récupérer le contenu de votre grille avant de le modifier (par exemple, en mettant en cache les résultats de la liaison de la source de données gridview d'origine). Parcourez ensuite l'ensemble de données/datatable/que vous souhaitez stocker, puis comparez le contenu avec les lignes actuelles de la grille.

1

Il n'y a pas de moyen vraiment efficace de le faire, aucune méthode comme GridView.GetAllChangedRows(). Donc, ce que vous pouvez faire à la place est de garder une liste des coulisses que vous ajoutez à chaque fois qu'une ligne est modifiée (utilisez la méthode RowUpdated), puis effacez cette liste si nécessaire.

0

Cela dépend du nombre de colonnes que vous souhaitez modifier à la suite.

Si vous n'avez qu'une seule colonne modifiable dans une ligne, vous pouvez associer une méthode javascript avec ce contrôle que vous souhaitez modifier et dans cette méthode vous pouvez obtenir un rowid que vous pouvez enregistrer dans un autre champ caché et côté serveur vous pouvez obtenir toutes les lignes dont les identifiants sont stockés dans un champ caché. Si vous avez toute la ligne modifiable dans ce cas, la meilleure approche, je pense que vous devriez enregistrer la source de données d'origine quelque part et également définir une méthode javascript avec un événement rowclick pour obtenir rowid que l'utilisateur sélectionne. Ensuite, lorsque l'utilisateur clique sur le bouton Soumettre, toutes les lignes dont les identifiants de lignes sont stockés dans un champ masqué sont comparées à celles ayant le même Rowid dans la source de données. C'est la meilleure approche de mon point de vue. Permettez-moi de vous donner un exemple, supposons qu'il y ait 1000 lignes dans une grille et que l'utilisateur clique sur 180 lignes seulement. Dans ce cas, nous ne comparerons que 180 lignes et ne comparerons pas le reste des lignes.

S'il vous plaît laissez-moi savoir si quelqu'un a une meilleure idée alors cela.

Questions connexes