Je travaille actuellement sur un morceau de code qui utilise un ancien DataGrid de style pour permettre à l'utilisateur d'entrer des informations dans la table. Il a déjà un bouton ajouter et supprimer. Actuellement, l'utilisateur entre les informations dans 3 zones de texte qui sont dans le pied de page, et les autres lignes utilisent des étiquettes pour afficher les informations. Essentiellement, ce que je veux faire est de prendre la ligne sur laquelle l'utilisateur a cliqué sur le bouton d'édition, et déplacer le texte de là vers le pied de page (suppression de la ligne sur laquelle il était affiché) afin que l'utilisateur puisse faire modifications, puis cliquez à nouveau sur le bouton Ajouter. Pour l'instant, j'ai essayé d'utiliser FindControls pour trouver la zone de texte et régler le texte de cette façon, mais il n'aime pas ça. Des idées?Modification d'une ligne d'une grille de données dans ASP.Net VB.Net
Répondre
Quelques points doivent être clarifiés - faites-vous référence à l'ancien contrôle .NET "DataGrid" ou au contrôle "GridView" plus récent. Aussi, est-ce une application web ou winforms?
Mes suggestions -
Avez-vous essayé d'ajouter et de programmation définir les contrôles TextBox en manipulant l'événement GridView1_RowEditing?
Pour supprimer la ligne qui a été modifiée, supprimez-la de la source de données et relancez la grille.
list.Remove(itemToRemove);
GridView1.DataSource = list;
GridView1.DataBind();
Ensuite, prenez les données de itemToRemove et l'utiliser pour créer et mettre en programmation dans le pied de page textboxes.
Si la troisième colonne de votre grille de données est appelée « Nom » et contient les données de nom, vous devez créer et mettre le pied de page de troisième colonne ligne de valeur TextBox comme celui-ci -
GridView1.FooterRow.Cells[2].Controls.Add(new TextBox { ID = "tbName", Text = item.Name });
Comment utilisez-vous FindControl? Il est toujours utile de publier votre code;)
Vous devriez être en mesure d'exécuter un FindControl()
sur la ligne de pied de page et d'obtenir les zones de texte sans problème.
GridViewRow row = GridView1.FooterRow;
TextBox txt1 = ((TextBox)row.FindControl,"TextBox1"));
Essentiellement j'ai changé ce que j'avais initialement prévu. Au lieu de déplacer le texte de la ligne au pied de page textboxes et la suppression de la ligne, je place utilisé EditCommandColumn pour créer un bouton de lien comme si
<asp:EditCommandColumn ButtonType="LinkButton" ItemStyle-ForeColor="Blue" EditText='[edit]' UpdateText='[update]' CancelText='[cancel]'></asp:EditCommandColumn>
Je devais aussi ajouter EditItemTemplate à chaque colonne, avec une zone de texte dans chaque , et liez les données aux zones de texte de la même manière qu'il était lié aux étiquettes dans ItemTemplates.
Ensuite, en utilisant le gestionnaire d'événements ItemCommand, j'ai ajouté du code pour définir EditItemIndex sur la ligne en cours de modification.
Private Sub GoodsList_ItemCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgdGoods.ItemCommand
Select Case e.CommandName
Case "Edit"
dgdGoods.EditItemIndex = e.Item.ItemIndex
Case "Cancel"
dgdGoods.EditItemIndex = -1
Case "Update"
dgdGoods.EditItemIndex = -1
'Update details here
Ensuite, à la fin de cette reliure les données à la grille de données. Avec la commande EditCommandColumn, le bouton Modifier affichera automatiquement les boutons Mettre à jour et Annuler de la ligne en cours de modification.
- 1. Affichage de grille dans VB.NET
- 2. Evénement de ligne de la grille de données Asp.Net
- 3. Ajout de caractères dans une grille de données dans vb.net
- 4. Grille de modification de plusieurs enregistrements dans ASP.NET
- 5. Grille de données dans asp.net 2.0
- 6. Grille de données Web modifiable pour ASP.NET
- 7. Ligne de grille sélectionnable dans asp.net avec C# comme istockphoto
- 8. La modification de ligne dans la grille ne fonctionne pas en premier clic
- 9. Remplir la grille de données avec pagination activée dans asp.net
- 10. Obtenir les données de ligne dans Ext JS 3.0 Grille
- 11. Grille partielle dans asp.net?
- 12. Comment effacer une grille de données ASP.NET?
- 13. lecteur de données dans vb.net
- 14. Contrôle asp.net pour l'affichage des données dans une grille
- 15. Effacement d'une grille de données asp.net dans la page ASPX
- 16. Modification de la liaison de données dans ASP.NET MVC RC2
- 17. Modification d'une ligne dans DB
- 18. Comment positionner dans la grille ASP.NET
- 19. Insérer une ligne dans gridview à partir d'une autre grille
- 20. Vue grille Asp.net
- 21. Mettre plusieurs données dans une cellule ASP.NET, VB.NET
- 22. Liste déroulante dans une grille de données
- 23. VB.NET: Modification de l'opacité de l'arrière-plan
- 24. Supprimer de la grille asp.net
- 25. AspComet avec asp.net (vb.net)
- 26. Modification de documents Microsoft Word dans ASP.Net
- 27. Création/modification de fichier texte via VB.NET
- 28. Modification de la valeur d'en-tête dans la grille Voir
- 29. Modification des types personnalisés dans la grille de la propriété
- 30. Date de modification dans l'application ASP.Net MVC
Merci pour la réponse. Malheureusement je ne peux pas trouver un moyen d'accéder directement à la ligne de la grille de données (je ne peux pas créer un objet DataGridRow), mais j'ai trouvé une solution que je publierai ci-dessous. –