DATAGRID : Bouton Ajouter, Modifier, Supprimer

Résolu
Templar_net Messages postés 30 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 28 septembre 2005 - 30 mai 2005 à 17:06
Templar_net Messages postés 30 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 28 septembre 2005 - 31 mai 2005 à 16:40
Bonjour à tous,
Je suis sur .NET 2003 depuis quelques jours pour developper une petite application Web avec une base de données SQL 2000. Je suis bien sur débutant dans ce domaine et je dois très vite réaliser cette application.


J'ai plusieurs livres pour m'aider :
Formation à ASP.NET (Fourni avec le logiciel) = Livre 1
Guide pas à pas (Fourni avec le logiciel) = Livre 2
ASP .NET (Micro - application) = Livre 3


Le premier test que je veux realiser est tout simple : J'ai une table COMPAGNIE qui contient un identifiant et un libellé. Je veux donc avoir mon datagrid sur ma page ASPX qui m'affiche l'identifiant et le libellé, avec, devant, le bouton modifier qui devient ensuite mettre à jour / Annuler, comme on peut le voir sur l'exemple page 618 du livre 3 ou 368 du livre 2.


Ma base de données est faite et j'ai suivi la procédure du livre 1 pour mon application WEB APS.NET donc : ajout d'un composant, création d'un SqlDataAdapter, puis utilisation du générateur de requetes. J'ai donc mon sqldataAdapter1 et mon sqlConnection1 qui sont créés. Ensuite je crée le myDataSet.xsd, puis mon myDataSet1 et j'ajoute les lignes de code comme indiqué dans le livre 1.
Et finalement j'ajoute mon DataGrid sur ma page ASPX. Et c'est là ou ca se complique :
dans le générateur de propriétés, je choisis "colonne bouton" et le type "modifier, mettre à jour, annuler".


Quand je demande d'afficher dans mon naviguateur, j'ai bien les 2 compagnies que j'ai entré dans la BD et devant le bouton modifier qui apparaît. Bien sur quand je clique dessus rien ne se passe car le code n'est pas associé.


J'utilise donc a partir de ce moment la, les livre 2 et 3 dans lesquels je constate qu'il faut ajouter dans le code HTML les onCancelCommant="MondataGrid_Cancel", onEditCommand="MonDataGrid_Edit", ... etc qui vont appeler mes fonctions.


Le seul souci c'est que dans ces deux livres, les codes sont mis SUR la page ASPX en mettant un <script> </script>, alors que pour ma part j'ai une page en plus ASPX.VB qui contient deja mon "page_load" par exemple. Donc il serait plus judicieux de mettre tout mon code labas, ... mais ca ne marche pas.
Exemple :
Public Sub MonDataGrid_Cancel(ByVal source As System.Object, ByVal e As DataGridCommandEventArgs)
DataGrid1.EditItemIndex = -1
DataGrid1.DataBind()
End Sub



De plus pour les boutons supprimer et insert, j'ai vu qu'il y avait un code de généré dans mon coponent et qui s'appelle, "sqlDeleteCommand1", "sqlUpdateCommand1", ... etc
Exemple :
'SqlInsertCommand1
'
Me.SqlInsertCommand1.CommandText = "INSERT INTO Compagnie(libelle_compagnie) VALUES (@libelle_compagnie); SELECT id_c" & _
"ompagnie, libelle_compagnie FROM Compagnie WHERE (id_compagnie = @@IDENTITY)"
Me.SqlInsertCommand1.Connection = Me.SqlConnection1
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@libelle_compagnie", System.Data.SqlDbType.VarChar, 50, "libelle_compagnie"))
'



Donc ma question est de savoir : est-ce que quelqu'un sait comment je peux avoir mes boutons qui fonctionne correctement en passant par ma page aspx.vb (Modifier, mettre à jour, annuler dans un premier temps) et mon composant (les requete Insert, Delete) pour ne pas avoir à me retaper tout le code en script dans un deuxième temps, ... ?


Car je trouve que ces deux moyens sont pratiques est facile d'utilisation, donc pourquoi ne pas s'en resservir plutot que d'aller mettre son code dans un script ???


J'espère avoir détaillé assez mon souci si vous voulez plus de détail ou que je vous communique mon code c'est possible.

2 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
30 mai 2005 à 17:53
héhé le bouquin de Richard puis le bouquin pas à pas de Ms press ;-) c'est pour moi les deux meilleurs qui existent en francais sur asp.net bien que celui de Richard est justement un peu limite niveau accés au base de données, et pour travailler avec VS.net, d'ou ton problème avec le code behind (le fichier aspx.vb)

j'ai pas tout lu ton post, mais d'aprés ce que j'ai lu, tes evenements ne seront jamais declenché car tu ne les appelle pas :-/

pour faire correctement. En haut de la page de code aspx.vb tu dois avoi deux drops, celui de droite tu dois avoir ton datagrid, tu le selectionnes, puis celui de gauche tu peux choisir ton evenement.

normalement ca va automatiquement te rajouter ce code

Public Sub MonDataGrid_Cancel(ByVal source As System.Object, ByVal e As DataGridCommandEventArgs) handles me.dg1.CancelCommand

end sub

ou un truc du genre, tes evenements seront donc declenchés, en fait il te manquait le handles c'est lui qui indique quand c'est declenché, ca doit etre expliqué dans le bouquin3 (c'est bien un gros bouquin bleu ?, je l'ai lu a la vitesse ultra grand "V" celui la :p)

dans ton code aspx tu n'as desormais plus besoin de mettre le Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
3
Rejoignez-nous