Accueil > Forum > > > > comment lier un detailsview à un gridview
comment lier un detailsview à un gridview
dimanche 1 mars 2009 à 00:12:14 |
comment lier un detailsview à un gridview

coccolata
|
salut,je veux éditer mon gridview pour cette raison je vex employer un detailsview qui chargera la ligne sélectionnée du gridview mais le problème je sais pas comment le faire  ni quels evements dois-je utiliser ni comment basculer entre les mode du detailsview que sera mon datasource du detailsview??? j'ai fait dans form_load protectedvoid Page_Load(object sender, EventArgs e){ if (!IsPostBack){ string message = "impossible de charger la liste de pointage";string mat = Session["matricule"].ToString();string firstName = Session["prenom"].ToString();string lastName = Session["nom"].ToString();DataSet ds = newDataSet();DataAccess. DBRequests db = new DataAccess.DBRequests();ds = db.Select( "SELECT * FROM pointages WHERE pMatricule=" + mat); Response.Write( "bonjour " + firstName + " " + lastName);// chargement de la liste des pointagesif (ds.Tables[0].Rows.Count > 0){ GVpointageE.DataSource = ds.Tables[0]; GVpointageE.DataBind(); DetailsView1.DataSource = ds; DetailsView1.DataBind();
------------------------- et puis protectedvoid GVpointageE_SelectedIndexChanged(object sender, EventArgs e){ DetailsView1.PageIndex = GVpointageE.SelectedIndex; DetailsView1.DataBind(); ----------------------- mais ça marche pas merci en avance 
|
|
dimanche 1 mars 2009 à 01:38:30 |
Re : comment lier un detailsview à un gridview

RougailSaucisse
|
as-tu réellement besoin de bind toutes tes données sur la gridview ET la detailsview dans le page_load? Si non, tu pourrais faire comme ceci: dans ton SelectedIndexChanged tu executes une requete sur la database db.Select( "SELECT * FROM pointages WHERE xxxx=" + GVpointageE.SelectedValue) en prenant soin de preciser un datakey (correspondant a l'id de la table généralement) pour ta gridview (DataKeyNames="xxxx"). Sinon tu pourrais considerer l'utilisation des objectdatasources (ou sqldatasources mais bon...) plutot que de passer par des dataset et tout faire a la mano. Ainsi tu pourrais choisir ta requete de selection du detailsview et lui attribuer comme parametre de filtrage un controlId correspondant au selectedvalue de ta gridview (cf. Asp.net/learn par exemple)
|
|
dimanche 1 mars 2009 à 09:17:38 |
Re : comment lier un detailsview à un gridview

coccolata
|
merci d'abord de m'avoir répondu assez vite j'ai besoin de bind des données de GridView mais pour le detailview j'ai besoin seulement des donnée de la ligne selectionnée du GV, pour avoir la main de faire des modification bref j'ai fait ceci:
j'ai enlevé le chargement du detailview dans le load et j'ai modifié GVpointageE_SelectedIndexChanged protected void GVpointageE_SelectedIndexChanged( object sender, EventArgs e){ DataSet ds = new DataSet ();
//GVpointageE.DataKeyNames = "id"; celle ci ne marche pas car GVpointageE.DataKeyNames renvoie un tableau de string qui ne peut pas etre conerti en string, donc j'ai déclaré mon id comme si un tableau de 1 elt GVpointageE.DataKeyNames = newstring[]{"id"} ;DataAccess. DBRequests db = new DataAccess.DBRequests();ds = db.Select( "SELECT * FROM pointages WHERE id="+ GVpointageE.SelectedRow.Cells[1]);DetailsView1.DataSource = ds; DetailsView1.DataBind(); }
cela m'a généré une erreur : plusieurs identifiants bound impossible 
|
|
dimanche 1 mars 2009 à 12:03:49 |
Re : comment lier un detailsview à un gridview

RougailSaucisse
|
pour commencer tu peux tout simple mettre GvpointageE.SelectedValue c'est plus "simple" ^^, quant à l'id j'avoue que je comprend pas pkoi il te dit que tu as plusieurs identifiants. Es-tu sur de n'en avoir pas déclaré directement dans la gridview dans ton code asp? Pour ma part j'ai fait un test la de cette manière sauf qu'au lieu de déclarer le DataKeyNames en code behind je le met directement dans le code asp et cela fonctionne parfaitement. Essaye de ton coté de la mm manière (dans le code asp) et si ca ne fonctionne, ben...on verra ^^
|
|
dimanche 1 mars 2009 à 13:55:42 |
Re : comment lier un detailsview à un gridview

coccolata
|
pour le probleme précédent c'est réglé, plus de bugs en fait j'ai oublié de mettre .Text (GVpointageE.SelectedRow.Cells[1].Text) quand je selectionne la ligne que je vourdrais afficher en détails je detailsview ne se charge pas : il est vide, je m'explique : il y'a affichage seulement de 2 links ( Mettre à jour Annuler)
apropos quand j'ai cherché sur le net une solution est proposé est ;
protected void GVpointageE_SelectedIndexChanged( object sender, EventArgs e) { DetailsView1.PageIndex = GVpointageE.SelectedIndex; DetailsView1.DataBind(); } mais encore ça marche pas quelques part j'ai trouvé que je dois insérer un objet data source dans le code aspx mais j'arrive pas a le faire car j'ai programmé la couche metier a part (dans un module) qui me renvoi seulement un dataset donc le data source ça sera pas reconnu...
je me sens égarée, rien ne fonctionne, et j'ai épuisé toutes mes idées  je comprends pas pourquoi le detailsview ne se charge pas!!!!!!!!
|
|
dimanche 1 mars 2009 à 23:44:28 |
Re : comment lier un detailsview à un gridview

RougailSaucisse
|
Premièrement, tu peux bien sur utiliser un Dataset avec objectdatasource control: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.aspxSinon pour le fait que ca ne marche pas dans ton cas je ne vois vraiment pas, car moi ici cela fonctionne (code fait a la va-vite mais bon pour le principe encore une fois): <asp:GridView ID="myGv" runat="server" AutoGenerateSelectButton="true" OnSelectedIndexChanged="myGv_SelectedIndexChanged" DataKeyNames="ProductID"> </asp:GridView> <asp:DetailsView ID="myDetailView" runat="server" /> protected void myGv_SelectedIndexChanged(object sender, EventArgs e) { using (SqlConnection conn = new SqlConnection(@"Server=.\SQLExpress;Database=AdventureWorks;UID=myUser;PWD=myPassword;")) { string requete = "SELECT * FROM Production.Product WHERE ProductID = " + myGv.SelectedValue; SqlDataAdapter dataAdapter = new SqlDataAdapter(requete, conn); DataSet ds = new DataSet(); dataAdapter.Fill(ds); myDetailView.DataSource = ds.Tables[0].DefaultView; myDetailView.DataBind(); } } Au pire met un breakpoint dans ton selectedindechanged et verifier que myGv.SelectedValue retourne bien ce qu'elle devrait retourner.
|
|
lundi 2 mars 2009 à 01:17:40 |
Re : comment lier un detailsview à un gridview

coccolata
|
vraiment je comprends rien! mon code est similaire à le tien..je l'ai meme modifié comme ta version mais en vain le meme probleme persisite encore!!!! voila exactement ce que j'ai écrit:
protectedvoid GVpointageE_SelectedIndexChanged(object sender, EventArgs e) { //DetailsView1.PageIndex = GVpointageE.SelectedIndex; //DetailsView1.DataBind(); //DetailsView1.PageIndex = GVpointageE.PageIndex * (GVpointageE.PageSize) + (GVpointageE.SelectedIndex); //DetailsView1.DataBind(); DataSet ds1 = new DataSet (); //GVpointageE.DataKeyNames = new string[] { "id" }; //GVpointageE.DataKeyNames = "id"; DataAccess. DBRequests db = new DataAccess. DBRequests ();ds1 = db.Select( "SELECT * FROM pointages WHERE id=" + GVpointageE.SelectedValue);DetailsView1.DataSource = ds1.Tables[0].DefaultView ; DetailsView1.DataBind(); }
le code aspx:
< asp : GridView ID ="GVpointageE" runat ="server" DataKeyNames ="id" CellPadding ="4" ForeColor ="#333333" GridLines ="Horizontal" Width ="319px" Caption ="Liste de pointage" Font-Overline ="False" Font-Strikeout ="False" CellSpacing ="1" OnSelectedIndexChanged ="GVpointageE_SelectedIndexChanged"> < FooterStyle BackColor ="#507CD1" Font-Bold ="True" ForeColor ="White" /> < RowStyle BackColor ="#EFF3FB" /> < EditRowStyle BackColor ="#2461BF" /> < SelectedRowStyle BackColor ="#D1DDF1" Font-Bold ="True" ForeColor ="#333333" Wrap ="True" /> < PagerStyle BackColor ="#2461BF" ForeColor ="White" HorizontalAlign ="Center" /> < HeaderStyle BackColor ="#507CD1" Font-Bold ="True" ForeColor ="White" /> < AlternatingRowStyle BackColor ="White" Wrap ="True" /> < PagerSettings Position ="Top" /> < EmptyDataRowStyle Font-Strikeout ="False" Font-Underline ="False" /> < Columns > < asp : CommandField ShowSelectButton ="True" /> </ Columns > </ asp : GridView >
< asp:DetailsViewID="DetailsView1"runat="server"CellPadding="4"DefaultMode="Edit"Height="50px"Width="125px"AutoGenerateEditButton="True"BackColor="White"BorderColor="#CC9966"BorderStyle="Dotted"BorderWidth="1px"Font-Bold="False"Font-Names="Calibri"Font-Overline="False"OnPageIndexChanging="DetailsView1_PageIndexChanging"AutoGenerateRows="False"DataKeyNames="id"AllowPaging="True"><FooterStyleBackColor="#FFFFCC"ForeColor="#330099"/><RowStyleBackColor="White"ForeColor="#330099"/><PagerStyleBackColor="#FFFFCC"ForeColor="#330099"HorizontalAlign="Center"/><HeaderStyleBackColor="#990000"Font-Bold="True"ForeColor="#FFFFCC"/><EditRowStyleBackColor="#FFCC66"Font-Bold="True"ForeColor="#663399"/><PagerSettingsMode="NextPreviousFirstLast"/></asp:DetailsView>
bien sur que j'ai suivi l'exection par un breakpoint et f10 ...tout ça fonctionneje comprends pas ou la faille dans mon code 
|
|
lundi 2 mars 2009 à 01:44:13 |
Re : comment lier un detailsview à un gridview

RougailSaucisse
|
Réponse acceptée !
lol je crois savoir d'ou viens ton probleme. Dans ton detailsview tu as mis AutoGenerateRows="false", donc il ne va rien générer du tout. Donc soit tu met la propriété a true (par défaut), soit tu définis un template en prenant les champs que tu veux afficher. Ca devrait fonctionner maintenant (et aussi avec la manière que tu utilisais auparavant (SelectedIndex) bien que je trouve "dommage" de bind toutes les données à la fois sur gridview et detailsview ca fait bcp de données enfin bon a toi de voir mais une maniere ou l'autre ca devrait etre ok maintenant.
|
|
lundi 2 mars 2009 à 08:53:35 |
Re : comment lier un detailsview à un gridview

coccolata
|
bonjour je suis super contente merciiiiiiiiiiiiiiiiiii merciiiiiiiiiiiiii merciiiiiiii finalment ça fontionnee  en fait vous avez raison j'aurais pa du commettre cette betise! j'ai pensé que en mettant AutoGenerateRows ="False" le detailsview ne sera pas généré automatiquement mais sera déclenché seulement par l'evenement SelectedIndexChanged lors de la selection de ligne du gridview j'ai tort car le chargement automatique est la tache de load! merci une autre fois RougailSaucisse pour ton aide
|
|
Cette discussion est classée dans : string, ds, detailsview, detailsview1, gvpointagee
Répondre à ce message
Sujets en rapport avec ce message
cacher les champs vides d'un detailsview [ par coccolata ]
comment je peux cacher les champs vides d'un detailsview??j'ai essayé ça, mais ça ne fonctionne pas, lors du deboggage ça n'entre pas dans la boucle i
basculer entre mode insertion et mode édition dans un detailsView [ par coccolata ]
salut à tous,j'ai un gridview, en selectionnant une ligne j'aurai les details chargés dans un detailsviewmon details view est par defaut en mode inser
update et isert dans un detailsView [ par coccolata ]
bonsoir à tous comment se fait un update et un insert dans un detailsview je voulais savoir est ce que je dois spécifier à chaque fois la cellule de
connection à une base de donnée sql server [ par coccolata ]
bonjour je developpe une applicaion asp.net c# sur VS2005 , sql server 2005j'arrive pas à me connecter à la base, je m'explique:je veux ouvrir une ses
envoi d'un mail automatique sous format html en asp.net c# [ par coccolata ]
salut,je voudrais envoyer un mail automatique, j'utilise visual studio.net 2005 (en c#)mon problème est :1) mon email est en format html, les balises
Active directory et Dll = problème d'obtention utilisateur [ par jostag ]
Bonjour,je ne suis pas sur d'être a la bonne place pour le message puisque ma question concerne un application web et une non web (une dll), enfin vou
Récupération d'un string du coté client [ par clavelski ]
Bonjour, Donc j'ai un petit soucis avec mon string ;) . En fait du coté de mon service, j'ai 2 méthode qui me permette de concaténer 2 fichier XML.pub
System.Threading.ThreadAbortException [ par thiosyiasar ]
Bonjour,J'utilise une requete http en javascript, pour appeler une page aspx qui me retourne une url.Cela fonctionne bien mais visual studio affiche u
éviter l'affichage des cellules vides dans un detailsview [ par coccolata ]
salut à tous,comme je peux éviter l'affichage des cellules vides dans mon detailsview l'idee intuitive que j'ai eu est de jouer sur la visibilité de l
Shared Ou New ? [ par jmtoulon ]
Bonjour, voici ci-dessous un extrait d'un code que j'ai créer afin de vous exposer mon probleme.Depuis une page aspx, quand la page se charge, la fonc
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|