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 : Problème avec une collection de type statique... [ WebForms / Autre ] (PeTeRsLaStAr)

mardi 5 février 2008 à 16:01:18 | Problème avec une collection de type statique...

PeTeRsLaStAr

Membre Club
(le titre est un peu vague, mais je ne sais pas trop, comment résumer en une phrase mon problème...)

Voilà mon problème.
J'ai un tableau qui est géré dynamiquement (sur la colonne de droite, un bouton ajouter, ajoute dynamiquement une nouvelle ligne).
Dans chaque ligne, il y a une combo Box, chargée avec le contenu d'une web Methode.

Auparavant, j'appelais la webMethode à chaque création d'une nouvelle ligne pour gérer le contenu de ma web méthode (sachant que je ne peux pas Databinder avec mon dataset, car j'effectue des traitements sur ces données... à savoir reformatage, etc...).
La webMethode est devenue très couteuse en temps, et le chargement d'une nouvelle ligne est maintenant beaucoup trop long. il me faut donc une solution de rechange.

J'ai alors essayé au premier chargement de ma comboBox de stocker mes valeurs dans une varialbe statique de type "NameValueConfigurationCollection".
Cela donnait à peu près ça :

protected static bool mbDDLHasBeenLoad;
protected static m_MyCollection;

protected void LoadDropDownList(DropDownList DDLToFill)
{
        if (!mbDDLHasBeenLoad)// Premier chargement dans la collection
        {
            m_Array_DDL_Liste_Products = new NameValueConfigurationCollection();
            NameValueConfigurationElement MyDataToAdd;
            DDLToFill.Items.Clear();
            // Appel de la WM
            MyWebServices MyWS = new MyWebServices;
             DataSet MyDS = MyWS.GetData();

            foreach (DataRow MyRow in MyDS.Rows)
            {
                    ListItem MyItem = new ListItem(MyRow["Code"].ToString(), MyRow["Libelle"].ToString());

                    DDLToFill.Items.Add(MyItem);
                    MyDataToAdd= new NameValueConfigurationElement(MyRow["Code"].ToString(), MyRow["Libelle"].ToString());
                    m_MyCollection.Add(MyProductToAdd);
             }
        }
        else    // La collection a déjà été chrgée
        {
            DDLToFill.Items.Clear();

            // Récupération de toutes les clés dans un tableau de string
            string[] saAllKeyValues = m_MyCollection.AllKeys;
            foreach (string sKey in saAllKeyValues)
            {
                DDLToFill.Items.Add(new ListItem(sKey, m_MyCollection[sKey].ToString()));
            }
        }

(J'edspère avoir été aussi clair que possible dans mon exemple...)

LE PROBLEME, est le suivant :
Dès que je modifie une DropDownList, après mon postBack, la valeur de ma DDL devient la même que la valeur de ma première DDL, chargée initialement...

Ma question vous l'avez compris : comment faire, pour que chaque DropDownList ait un comportement individuel ? Là j'ai l'impression que je dois faire une référence à ma DDL, et que du coup, toutes les DDL sont en fait liées à la première...

Merci pour vos réponses :)
Si vous avez des questions, n'hésitez pas...


****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher

mercredi 6 février 2008 à 22:36:20 | Re : Problème avec une collection de type statique...

yann_lo_san

Salut,
static veut dire partagé, donc il te faut une collection par DropDownList.

// Si premiere demande

// crée la collection de la dropDownList demandée (la 1ère par exemple)
m_MyCollection1 = new ect..

// sauve entre les posback

ViewState.Add("DropDownList1", m_MyCollection1);

//  a chaque postback

if( DDLToFill.ID = "DropDownList1" )
{
   // recup collection 1
   m_collecRef = ViewState["DropDownList1"] as leTypeCollection;
}
else if( DDLToFill.ID = "DropDownList2" )
{
   // recup collection 2
   m_collecRef= ViewState["DropDownList2"] as leTypeCollection;
}

// rempli la dropDownList demandée avec la collection correspondante
DDLToFill.Items.Add(sKey, m_collecRef[sKey].ToString());

jeudi 7 février 2008 à 10:11:26 | Re : Problème avec une collection de type statique...

PeTeRsLaStAr

Membre Club
Merci pour ta réponse.

Le problème de cette solution (sauf s'il y a une feinte) c'est que je ne sais pas combien de lignes je dois avoir...
Du coup, je me vois mal créer 15 ou 20 DDL...

****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher



Cette discussion est classé dans : problème, ddl, tostring, myrow, ddltofill


Répondre à ce message

Sujets en rapport avec ce message

problème de sélection de dropdownlist (qui se trouve dans un datalist) [ par siw ] Bonjour !Je n'arrive pas à selectionner les éléments de mon dropdownlist.J'ai un contrôle dropdownlist qui se trouve dans le template de mon contrôle Problème de cache et autres en ASPnet [ par slednet ] Bonjour,je rencontre un problème récurrent que je n'arrive pas à maîtriser, faute de compréhension...J'ai une application WEB ASPNET qui tourne sur un [ASP.NET] Pb avec control de validation et pages aspx [ par chrisisis ] Bonjour,J'ai des formulaires en ASP.NET1) Mon problème est un peu bizarreSi je met des contrôles de validation sur mes formulaires simples, je ne peux Problème de refresh d'un webcontrol [ par regi ] Bonjour à tous, J'ai une page avec un formulaire contenant plusieurs champs ainsi que quelques dropdownlist. Voulant permettre la MAJ dynamique de ces Problème avec le recordset en ASP [ par Baran ] Baran Salut tout le monde, alors voilà j'ai créer un recordset avec une requête qui va chercher tou récupérer le texte d'une DDL en ASP.NET [ par vmasson ] Voila mon problème. Je developpe un formulaire en ASP.NET.Le problème est que je n'arrive pas a récupérer le texte ke l'on a selectionné dans la DDL a Problème sur proc stockée insert [ par JoeBillou ] Voilà je lance une proc stockée d'insert depuis un script ASP vers une base access et voici le message d'erreur Microsoft OLE DB Provider for ODBC Dri VS : écriture dans un répertoire [ par methkaff ] BonjourJe ne suis pas encore au ords du suicide, mais cela fait 4 jours que je cherche sur le net et que je trouve rien sur mon problème.A mon avis c' help checkbox !!! [ par Poulipe ] Bonjour,je cree des checkbox dynamiquement mais je n arrive pas a recuperer si elles sont cliquee, et ce a chaque clic sur l une d elle...Qqun peut il Problème avec binaryread et request.form [ par goldeagle ] Comme tout le monde le sait, utiliser binaryread nous empêche d'utiliser le request.form.Seulement, comment je peux récupérer des valeurs de champ en


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,265 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é.