begin process at 2012 02 10 02:27:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

WebForms

 > 

WebControl

 > 

correspondance entre datakey et index ds un Gridview


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

correspondance entre datakey et index ds un Gridview

vendredi 1 février 2008 à 17:04:34 | correspondance entre datakey et index ds un Gridview

herve_labenere

Bonsoir,

Je tente de mettre en place un moteur de recherche sur mon application de suivi des marchés :
Un champs texte en haut à droite, qui liste ds une 2nd page les marchés et les
projets en rapport avec le mot recherché.
Cette page de résultat doit rediriger vers le listing des marchés
(marchés.aspx), s'il s'agit d'un marché, ou le listing des
projets(affaires.aspx) s'il s'agit d'un projet.
Donc je fais un lien avec en paramètre l'ID du marché recherché et trouvé. Ex :
marchés.aspx?id=789
Du coup ds la page marchés.aspx, j'ai le code suivant ds le load de la page :
int id_marche = Int32.Parse(Request.Querystring["id"]

Jusqu'ici pas de problème.

Mais comment faire pour sélectionner la ligne correspondante ds mon listiing (Gridview) des
marchés ?
Il y a bien une propriété Gridview.SelectedDatakey, mais c'est en lecture seule.
Sinon, il y a Gridview.SelectedIndex, qui est en lecture et en écriture, mais
comment alors obtenir la correspondance entre la clef primaire d'une ligne et
l'index de cette ligne ???

Je suis obligé pour l'instant, de faire une boucle, de parcourir le gridview et
si le champs de la colonne ID = l'id marché récupéré du querystring
Mais ça n'est pas non plus satisfaisant, car si la ligne du marché se trouve ds
la 2nd page de mon gridview, il ne la trouve pas...

Voici le code
------------
  if (Request.QueryString["id"] != null)
        {
            int id_marché = Int32.Parse(Request.QueryString["id"]);


            #region "Correspondance id / index"

            int index_marché = 0;

            while (gvMec.PageIndex < gvMec.PageCount)
            {
                foreach (GridViewRow gvrow in gvMec.Rows)
                {
                    if (gvrow.Cells[0].Text == id_marché.ToString())
                    {
                        index_marché = gvrow.DataItemIndex;
                        break;
                    }
                }
                gvMec.PageIndex++;
            }



                gvMec.SelectedIndex = index_marché;
              #endregion

       }

Herwin
samedi 2 février 2008 à 08:04:27 | Re : correspondance entre datakey et index ds un Gridview

poulouf

Salut,
tu peux le faire au binding de la gridview,
en parcourant les items et vérifiant qu'ils correspodent ou pas a tes données,
tu lance un select() quand tu as trouvé le bon...
samedi 2 février 2008 à 11:45:33 | Re : correspondance entre datakey et index ds un Gridview

herve_labenere

Merci pour cette piste,
Mais qu'entends-tu par "le faire au binding de la gridview".
Ca m'interesse beaucoup, mais je ne vois paq trop le code que cela donnerait.

Peux-tu m'en donner une idée

Merci d'avance,
Herwin
samedi 2 février 2008 à 15:09:13 | Re : correspondance entre datakey et index ds un Gridview

poulouf

Réponse acceptée !
un exemple rapide que tu peux tester chez toi :) :

 protected void Page_Load(object sender, EventArgs e)
    {
        GridView1.DataBound +=new EventHandler(GridView1_DataBound);
        List<string> oList = new List<string>();
        oList.Add("toto");
        oList.Add("tata");
        oList.Add("titi");
        GridView1.DataSource = oList;
        GridView1.DataBind();
}

void GridView1_DataBound(object sender, EventArgs e)
{
        List<string> oList = ((GridView)sender).DataSource as List<string>;
        for (int i = 0; i < oList.Count; i ++)
        {
            //fair qqch
            if (oList[i] == "titi")
            {
                GridView1.SelectedIndex = i;
                break;
            }
       }
}

facile a transposer sur ton cas...
samedi 2 février 2008 à 15:15:49 | Re : correspondance entre datakey et index ds un Gridview

poulouf

pardon, je me suis un peu enflammé, j avais mal lu,
je crois que de plus les gridview sur plusieurs page l index ne reprend pas a 0,
donc nbpage * taille page + index...

enfin le databindind est toujours bon a prendre :)
mardi 19 février 2008 à 18:34:08 | Re : correspondance entre datakey et index ds un Gridview

TOzZ


salut poulouf,
j'ai repris ton code ci-dessus pour la correspondance id et index
<code>
#region "Correspondance id / index"

int idx = -1;
while (this.GridView1.PageIndex < this.GridView1.PageCount)
{
   
foreach (GridViewRow gvrow inthis.GridView1.Rows)
   {
      
if (gvrow.Cells[0].Text == result.ToString())
      {
         idx = gvrow.DataItemIndex;
         
break;
      }
   }
   GridView1.PageIndex++;
}
GridView1.SelectedIndex = idx;

#endregion


</code>

et tu dis t'être un peu enflammé... nbpage * taille page + index...
peux-tu complèter le bout de code avec ta solution (nbpage * taille page + index...)?

merci d'avance
TOzZ
mardi 25 mars 2008 à 08:17:24 | Re : correspondance entre datakey et index ds un Gridview

poulouf

Salut,
c'était juste pour positionner la gridview
sur la bonne page (en fonction du nombre de données et tout ca...)
tu dois avoir bonnepage = index/taillepage avec le select dans le databind,

perso je suis pas fan du paging sur les gridview, même si ça a son avantage
dans le cas de tri alphabétique et quand il y a beaucoup de données...

Bon courage et désolé pour le temps de réponse...





Cette discussion est classée dans : id, gridview, ds, index, marché


Répondre à ce message

Sujets en rapport avec ce message

[C#][VS2005] GridView avec DDL "vide" [ par cnguyen ] Bonjour,J'ai un souci, je creer un GridView en glissant ma table CRA sur ma page de creation.Donc il me creer un gridview avec comme champs :ID | USER checkBox [ par lilippx ] bonjour, voila mon soucis, je genere dynamiquement des checkBox depuis le code behind en leur attribuant une id : CheckBox monCheck = new CheckBox(); GridView et colonne masquée [ par javajavajava ] Bonjour, j'ai un gridview de 4 colonnes dont une masquée (visible = false). J'update les lignes de ce gridview grace a une fonction définie ds un Obje Atlas-Gridview-Javascript [ par austinio ] Bonjour,    j'essaie de remplir une GridView en javascript...pour detailer un peu ce que je fais : j'ai une DropDownList où il ya une lise des cat Renvoyer des informations provenant d'un gridview vers Access [ par Goldeneye007 ] Salut,Voilà j'ai remplit mon gridview avec la requête suivante :AccessDataSource_passer.SelectCommand = "SELECT CONSOMMABLE.Id_consommable, CONSOMMABL Aide DataSet [ par Joe051 ] Bonjour a tous .j'ai un probleme avec mon dataset.Voila je passe une requete et je voudrais que lorsque ma requete ne retourne aucun resultat mon data GridView selection [ par seliane ] BonjourJe débute dans ASP.net.J'ai une gridview et la premiere colonne de mon gridview est un hyperlinkfield. cette colonne contient des iddonc qd je Lire ligne d'un GridView [ par adomarle ] Bonjour,J'ai un gridview avec des colonnes non affichées :asp:GridView<fon Modifier la propriété d'une colonne d'un Gridview [ par adomarle ] Bonjour,J'ai un gridview qui est le suivant :asp:GridView</ Impression Gridview - gestion des sauts de page [ par fiveAT ] Bonjour,Je suis débutant en ASP.NET. J'utilise Visual Studio 2005 Standard et je code en VB.Mon problème est le suivant: j'ai un gridview alimenté par


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 9,578 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales