Accueil > Forum > > > > Remplacer les boutons Edit, Update, Cancel par des boutons graphiques
Remplacer les boutons Edit, Update, Cancel par des boutons graphiques
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ée 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
datalist ou repeater? [ par danyclassique ]
Bonjour a tous,Je voulais savoir si quelqu'un serai comment faire pour inserer dans chaque item d un datalist a la creation et dynamiquement en code b
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,
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Forum
RE : FORMULAIRERE : FORMULAIRE par ap24dp
Cliquez pour lire la suite par ap24dp RE : FORMULAIRERE : FORMULAIRE par jopop
Cliquez pour lire la suite par jopop RE : FORMULAIRERE : FORMULAIRE par ap24dp
Cliquez pour lire la suite par ap24dp RE : FORMULAIRERE : FORMULAIRE par jopop
Cliquez pour lire la suite par jopop
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|