Comment faire pour activer la modification sur place dans un asp:GridView?
Comment puis-je ajouter des boîtes d'édition et de lire leurs valeurs au cours de soumettre, avec une asp:Repeater
?
j'ai un asp:GridView
qui est de l'affichage en lecture seule (c'est à dire non-modifiable) de l'ensemble des données, par exemple:
Comment j'ai activé les cellules de la GridView
être modifiable, e.g (Photoshop Maquette):
Remarque: je n'ai pas de maquette dans Photoshop une zone d'édition dans chaque rangée et colonne (parce que c'était trop long). Vous obtenez toujours l'idée.
- Comment puis-je convaincre un
asp:GridView
pour montrer edit-fort dans chaque cellule? - Si je dois convaincre le
asp:GridView
pour montrer edit-fort, comment puis-je "lire"OnClick
de Enregistrer bouton?
Bonus Chatter
je ne serais pas opposé à l'aide d'un asp:Repeater
, manuellement en plaçant <INPUT>
contrôles. Ma confusion est sur la façon de lire chaque entrée au cours de la OnClick
de la Enregistrer bouton. Et bien que je serais parfaitement heureux, utiliser un répéteur, et un GridView pourrait ne pas être en mesure d'accomplir ce que je veux faire de la répétition, la seule possibilité, cette question est à propos d'un GridView.
- Si le contrôle GridView peut faire: excellent; comment?
- Si le contrôle GridView ne peut pas le faire: c'est une réponse trop.
- L'ensemble de la colonne doit être modifiable, non? Pas une seule ligne?
- Oui. Probable que l'utilisateur aurait envie/besoin de modifier tous les éléments.
Vous devez vous connecter pour publier un commentaire.
Avez-vous tenté par la mise en place de la
EditIndex
propriété de laDataGrid
?Exemple:
Code derrière
Notez que vous devez vous re-lier votre grille
Habituellement, vous enregistrez les données par ligne, ce qui signifie, vous avez un lien modifier dans chaque ligne et chaque fois que vous entrez dans le mode edit, un bouton "enregistrer" et éventuellement un bouton annuler apparaître, ce qui vous permettra d'enregistrer les valeurs de cette ligne spécifique
Suivant cette approche est trivial lors de l'utilisation de la
GridView
:Dans la grille de balisage il suffit d'ajouter le texte suivant:
Si vous devez spécifier les contrôles personnalisés lors de l'édition ou lors de l'affichage de la cellule de données en mode lecture seule, l'utilisation de la grille de modèles:
RowEditing
événement, c'est que vous ne pouvez modifier que les données par ligne, et vous ne pouvez modifier que l'une rangée à la fois, et vous devez avoir un Modifier bouton de commande de liaison, dont l'utilisateur doit cliquer sur le premier.This.BindGrid()
?Vous pouvez le faire à l'aide d'un GridView, mais vous allez produire beaucoup de code si vous avez beaucoup de colonnes.
D'abord faire toutes les colonnes dans le contrôle GridView TemplateFields. Dans mon exemple, je vais utiliser une seule colonne. Comme:
Puis dans votre code derrière pour le bouton Enregistrer, vous pouvez parcourir les lignes de la GridView:
Bind
plutôt queEval
dans votreItemTemplate
il devrait autoupdate les données sous-jacentes de la valeur?