Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Remplacer les boutons Edit, Update, Cancel par des boutons graphiques [ Archives ASP & ASP.NET / ASP.net ] (martok)

mercredi 30 novembre 2005 à 18:30:53 | Remplacer les boutons Edit, Update, Cancel par des boutons graphiques

martok

Bonjour tout le monde, C'est un peu long, mais j'ai essayé d'être le plus clair possible ... Je cherche à remplacer un boutons Edit, Update, Cancel par des boutons graphiques qui auraient le même comportement. BasicInstinct (d'ailleurs merci, tu m'as bien aiguillé) m'a conseillé d'utiliser des TemplateColumn, ce que j'ai fait. Ca marche très bien pour le delete, qui est un "bouton normal", mais pour EditCommandColumn, qui a un comportement plus complexe, j'y arrive pas. Mon idée est de remplacer les boutons par des ImageButton. Voici mes templates : le premier c'est pour le bouton qui me pose problème, le second d'est pour le delete qui marche. J'ai créé un écouteur pour l'évènement _ItemCommand. Donc quand on clique sur n'importe quel bouton: Edit, Delete etc ... cet évènement est levé et intercepté par dgDataGridAff_ItemCommand. Voici le code : private void dgDataGridAff_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e){ if (e.CommandName.Equals("imgbtnSuppr")){ //this.lblMessageUser.Text = "C'est le bon"; this.deleteRow(source, e); } if (e.CommandName.Equals("imgbtnEdit")){ //this.lblMessageUser.Text = "C'est le bon"; this.editRow(source, e); } } Quand je clique sur Edit, on passe dans le deuxième IF et j'appelle la méthode editRow qui suit. En résumé, l'idée est de parcourir la collection de contrôles de ma cellule pour trouver le BoutonImage "Edit". Une fois que je l'ai, je le rends invisible. Je créé ensuite 2 boutons images, que je vais ajouter à la collection de contrôles de ma cellule : les boutons Update et Cancel. Je les rends visible et tout et tout, je les ajoute à la collection. La ligne nbCtl = "" + e.Item.Cells[0].Controls.Count; me dit bien que j'ai 5 contrôles dans la collection (3 boutons images et 2 autres controles (des LiteralControl)). Donc à priori c'est bon ... dgDataGridAff.EditItemIndex = e.Item.ItemIndex; Affiche les zones de saisies bindGrid(); Recharge le DataSet pour mettre à jour le datagrid. Le problème, c'est que quand l'écran est mis à jour, les zones de saisies sont bien visibles (normal), mais mon imgbtnEdit qui devrait être invisible apparaît. De plus, les 2 ImagesBoutons créés précédemment n'apparaissent pas. Je reclique sur le bouton Edit (là on est en mode édition). Ca réexécute tout. Quand on arrive sur la première ligne de la méthode editRow : string nbCtl = "" + e.Item.Cells[0].Controls.Count; Je m'apperçoit qu'il n'y a que 3 contrôles dans la collection. Quelqu'un a-il une idée ? private void editRow(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e){ //AVEC IMAGES DEBUT string nbCtl = "" + e.Item.Cells[0].Controls.Count; //On rend invisible le bouton imgbtnEdit for (int i = 0 ; i < e.Item.Cells[0].Controls.Count ; i++){ string strIdBled = "" + e.Item.Cells[0].Controls[i].ID; if (strIdBled.Equals("imgbtnEdit")){ e.Item.Cells[0].Controls[i].Visible = false; } } //Bouton Update ImageButton imgbtnUpdate = new ImageButton(); imgbtnUpdate.ID = "Update"; imgbtnUpdate.CommandName = "Update"; imgbtnUpdate.ImageUrl = @"C:\Inetpub\wwwroot\GestionnaireMetaDonnees\img\edit3.gif"; imgbtnUpdate.Visible = true; e.Item.Cells[0].Controls.Add(imgbtnUpdate); Session.Add("imgbtnUpdate",imgbtnUpdate); //Bouton Cancel ImageButton imgbtnCancel = new ImageButton(); imgbtnCancel.ID = "Cancel"; imgbtnUpdate.CommandName = "Cancel"; imgbtnCancel.ImageUrl = @"C:\Inetpub\wwwroot\GestionnaireMetaDonnees\img\retour.jpg"; imgbtnCancel.Visible = true; e.Item.Cells[0].Controls.Add(imgbtnCancel); Session.Add("imgbtnCancel",imgbtnCancel); //Nb de controles : vérif nbCtl = "" + e.Item.Cells[0].Controls.Count; //AVEC IMAGES FIN dgDataGridAff.EditItemIndex = e.Item.ItemIndex; bindGrid(); } Pour info voici la méthode bindGrid : private void bindGrid(){ if (this.cxConnection.State != ConnectionState.Open){ this.cxConnection.Open(); } int nblgaj = daDataAdapter.Fill(dsDataSet); dgDataGridAff.DataBind(); if (this.cxConnection.State != ConnectionState.Closed){ this.cxConnection.Close(); }}



Cette discussion est classé dans : boutons, item, controls, cells, imgbtnupdate


Répondre à ce message

Sujets en rapport avec ce message

2 Boutons, 1 Colonne [ par elpens ] Bonjour,J'ai a nouveau une petite embrouille.J'aimerai avoir dans 1 colonne de mon datagrid 2 boutons différents, en fonction de la valeur de la proch Datagrid OnItemCommand HELP ! [ par lamagnifik ] Bonjour tout le monde,je suis à bout avec mon datagrid et j'ai vraiment besoin de votre aide !Je souhaite mettre à jour les données contenues dans mon treeview CrapStuff Probl images [ par rabbiwan ] SalutCa va?Voila j'ai trouvé un treeview qui s'appel CrapStuff, vous pouvez le trouvé sur le site :http://crapstuff.craponne.org/Mais le problème c'es [ASPX][C#] treeview blocage affichage bouton [ par rabbiwan ] Bonjour,j'ai un petit problème : J'ai un Treeview qui fonctionne à merveille, sauf qu'il me bloque mes boutons; je m'explique. Mes boutons qui sont en Datagrid item command [ par Luspha ] Voila je developpe une application en vb.net sur mircosoft visual studio. Et j'aimerais savoir comment nous pouvons faire pour pouvoir gérer l'eveneme téléchargement de web controls [ par infolie ] bonjour,je débute en asp.net, et je voudrais bien utilliser les tabstrip seulement voila je ne sais pas ou est ce que je pourrais télécharger le  .dll Probleme d'update [ par hudon77 ] J'ai un bouton edit dans un datagrid. Quand je met de nouvelle valeur dans mes champs en mode edition et que je clique  sur update il fait mon updatem Confirmation d'une supression [ par hudon77 ] J'ai un bouton supprimer que je créer dans mon page_load  et il fonctionnait tres bien avant que je mettre un if not ispostback   mais si j'enleve le Erreur Temp [ par softghost ] bonjourj'ai des probleme avec cette erreur  : Erreur d'exécution Microsoft VBScript erreur '800a000d' Type incompatible: 'Temp' /essai/addcaddie.asp, [ASP.Net] Insérer une valeur nulle dans un dataset [ par kallahan03 ] Bonjour à tousj'ai un datagrid complet (insert, update, delete) dans lequel je liste avec un dataset des produits qui ont chacun un prix normal et un


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.