mimosa803
Messages postés345Date d'inscriptionjeudi 15 février 2007StatutMembreDernière intervention24 avril 2010
-
21 févr. 2008 à 11:41
mimosa803
Messages postés345Date d'inscriptionjeudi 15 février 2007StatutMembreDernière intervention24 avril 2010
-
6 mars 2008 à 15:35
Bonjour, je débute avec gridview et j'ai rencontré quelques problèmes :
J'ai pu afficher un gridview à partir d'une table puis j'ai ajouter les fields EDIT et DELETE et ca marche aussi.
Mais, le problème lors du la modification ("EDIT"), j'ai pas trouvé une solution pour afficher les contrôles de mon formulaire. Par défaut tous les champs sont des textbox or que mon formulaire contient des combox,....
Est ce qu'il ya un moyen de modifier les champs dans le gridview ?
lassaad83
Messages postés148Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention 1 décembre 2009 25 févr. 2008 à 17:26
Puisque tu as supprimé ton SqlDataSource, tu dois tout gerer toi même désormais ...
Pour commencé tu devra ajouter dans ton GridView un CommandField, après pour chaque TemplateField tu devra ajouter unItemTemplate qui contiendra les controls de présentation ainsi qu'unEditItemTemplate dans lequel tu mettra les control qui se chargerons du mode édition. J'ai deja fait un truc de ce genre, je te donne le source et a toi de le modifier en fonction de ton besoin ok ....
BorderWidth="0"
CommandName="supprimer"
ImageUrl="~/Supprimer.jpg"
/>
</ItemTemplate>
<!-- Ici j'ai le même template pour le boutton de suppression -->
<EditItemTemplate>
<asp:ImageButton
ID="cmdSupprime"
runat="server"
lassaad83
Messages postés148Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention 1 décembre 2009 25 févr. 2008 à 17:44
Moi j'ai garder les RowCommand car tou simplement lorsque je suis en EditTemplate et que je click sur boutton et bien ça declenche l'événement RowCommand et en fonction de CommandName je fait ce que j'ai a faire.
protected
void
GridView1_RowCommand(
object
sender,
GridViewCommandEventArgs
e){
switch
(e.CommandName)
{
case
"Delete"
:
//suppression;
break
;
case
"nomDeTaCommande"
:
//traitement a faire
//break;
default
:
break
;
}
}
Après si tu trouve une autre façon beaucoup plus simple je suis preuneur ...
lassaad83
Messages postés148Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention 1 décembre 2009 25 févr. 2008 à 18:14
En fait, dans ton Grid pour chaque colone que tu voudra pouvoir modifier tu devra mettre dans le
TemplateField un ItemTemplate (généralement c'est un Label d'affichage) et un EditTemplate (TextBox, DropDownLIst, List) pour la modification.
Concernant le boutton de suppréssion généralement il se trouve en fin de ligne dans le Grid, met le dans un TemplateField et plus précisement dans un
ItemTemplate.
Bien entendu n'oubli de donné les CommandName et CommandArgument
qu'il faut a tout tes control de validation pour pouvoir les prendre en charge dans l'événement RowCommand.
Et oui tu devra virer de ton code le SqlDataSource....
Autre chose je te conseil d'utiliser des Procédures Stockées au lieu des requetes en dur dans ton code même si elle sont paramètré :
...
string requete = "Update PROFILE Set profile_shortname=@sh_name,Set profile_name=@name where profile_id=@profile_id";
mimosa803
Messages postés345Date d'inscriptionjeudi 15 février 2007StatutMembreDernière intervention24 avril 2010 29 févr. 2008 à 12:45
Bonjour, je suis entrain de coder la modification, concernant les paramètres @sh_name,....
je vais récupérer les valeurs des textbox du grid, comment je fais ?
Merci.
mimosa803
Messages postés345Date d'inscriptionjeudi 15 février 2007StatutMembreDernière intervention24 avril 2010 6 mars 2008 à 15:35
Salut je fait un test sur un champ de la base s'il est égale à 'N' ou il est NULL le checkbox n'est pas sélectionné, voila le code mais ca ne marche pas avec un champ NULL :