Combo, select append etc...

olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 - 6 mars 2008 à 21:53
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 - 7 mars 2008 à 15:00
Bonsoir


J'essaye de m'accoutumer au fonctionnement d'un combo
Mais il y a encore beaucoup d'inconnue


Je travaille avec un Combo ayant comme datasource une table chargée par query


Tout d'abbord qq peut-il m'expliquer les différences entre
Suggest, Append et SuggestAppend,
J'ai essayé les trois, je ne vois aucune différence et j'ai pas compris la doc  ?
a quoi servent les autres propriétes autocomplete ?


Pratiquement il y a deux choses que j'aimerais faire


La premiere c'est permettre a l'utilisateur de ne selectionner rien du tout : mettre la selection a blanc, SANS devoir ajouter une row vide dans la datatable : est ce possible ?


La deuxieme c'est de permettre a l'utilisateur d'ajouter des valeurs (ca je vois un peu comment faire, mais je ne m'y lancerai que quand j'aurai bien compris le reste)

3 réponses

olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
6 mars 2008 à 23:03
Bonjour

En chipotant un peu j'ai trouvé une solution amusante et intéressante
Le challenge etait d'avoir dans mon combo une valeur vide permetant a l'utilisateur de selectionner "rien"
Sachat que 
1- Mon combo est rempli  par une table chargée par un query 
2- Je dois pouvoir utiliser ce query pour des maj eventuelle a l'aile de MySqlCommandBuilder

Voici la solution

   private void FillCmbCont()
    {
// Je fais un union dans le select pour crer des valeurs bidon
      string selectcmd = "SELECT * FROM `containers` union select '','','','','' from containers order by Scan_Num";
      adaContFull.SelectCommand = new MySqlCommand(selectcmd, MyConn.conn);
      adaContFull.Fill(dsContFull);



//  Mon nouveau probleme c'est que mon select es maintenant impropre a la consomation pour MySqlCommandBuilder
// Tant pis je truque en recreant un query simple comme si j'avais pas fait d'union
      MySqlCommand cmd = new MySqlCommand("SELECT * FROM `containers` order by Scan_Num", MyConn.conn);
      adaContFull.SelectCommand = cmd;
// et hop le tour est joué Update n'y verra que du feu !!


      cmb_Cont.DataSource = dsContFull.Tables[0];
      cmb_Cont.DisplayMember = dsContFull.Tables[0].Columns["Scan_Num"].Caption;


    }
0
Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010
7 mars 2008 à 12:52
"La premiere c'est permettre a l'utilisateur de ne selectionner rien du
tout : mettre la selection a blanc, SANS devoir ajouter une row vide
dans la datatable : est ce possible ?"

as tu essayé de faire
cmb_Cont.SelectecIndex = -1;
il me semble que ca marchait...
pour tous autres question, je peux pas t'aider, j'ai pas utilisé ses options encore...

Nul ne devient grand par la guerre...
0
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
7 mars 2008 à 15:00
Ca marche je pense aussi

Mais ce n'est pas l'intention : ca c'est bon pour afficher par défaut un combo vide, mae des que l'utilisateur chipotte avec, ca ne sert plu. Ce qu'il faut c'esr pouvoir ajouter une row blanche

D'autant que comme tu l'a vu, derriere mon combo, j'ai une datatable dont juste une colonne sera affichée et si l'utilisateur decide de ne rien choisir, il faut pouvoir revenir a cette zone vide qui n'existe pas a l'origine du datasource

Donc jusqu'a preuve du contraire, je trouve que ma solution a des atouts !
0
Rejoignez-nous