begin process at 2012 05 27 20:07:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ASP & ASP.NET

 > 

Archives ASP & ASP.NET

 > 

ASP.net

 > 

DropDownList éditable


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

DropDownList éditable

mardi 28 juin 2005 à 10:04:35 | DropDownList éditable

cabbry

Bonjour,

est que quelqu'un a un exemple, de code, une adresse de dropdownlist editable ?

Une Dropdownlist, dans laquelle on peut écrire le début d'un mot est la liste ce met à jour...

Vous voyez ?

Merci

Cab



mardi 28 juin 2005 à 11:56:35 | Re : DropDownList éditable

jesusonline

Membre Club Administrateur CodeS-SourceS
Un truc comme ce qu'il y a pour la textbox de recherche en haut du site ? :p

c'est loin d'etre facile, il faut utiliser la technologie Ajax (http://www.aspfr.com/ajax.aspx) puis aprés faut bien comprendre comment tout ca fonctionne ... renseigne toi sur ajax et aussi un peu sur javascript aprés tu verras mieux le fonctionnement du truc:)


Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
mardi 28 juin 2005 à 14:57:00 | Re : DropDownList éditable

cabbry

Ca a l'air d'être un truc de grand malade ton ajax...

Par contre, j'ai trouvé du code javascript, je le posterai quand ça marchera !

Cab

mercredi 29 juin 2005 à 09:19:15 | Re : DropDownList éditable

cabbry

Voila,

le résultat est sympa

Dans le Head de la page aspx:

        <script>
            function display_liste(calqt, calql) {  // Affiche le calque de la liste
                calql.style.visibility = 'visible';
                calql.style.top = calqt.style.top;
                calql.style.left = calqt.style.left;
            }
           
            function hide_liste(calqt, calql) {  // Affiche ou masque le calque de la liste suivant son dernier état
                if (calql.style.visibility == 'visible') {
                    calql.style.visibility = 'hidden';
                }
                else {
                    display_liste(calqt, calql);
                }
            }
           
            function display_down(keyc, listd, calqt, calql) {  // Affiche la liste si la touche "keyc" est pressée
                if (event.keyCode==keyc) {
                    display_liste(calqt, calql);
                }
                if ((event.keyCode==40) && (event.keyCode==keyc)) {
                    listd.focus();
                }
            }
           
            function enter_list(textb, listd, calql) {  // appelle getValue si la touche "Enter" est pressée dans la liste
                if (event.keyCode==13) {
                    getValue(textb, listd, calql);
                    parent.frames['droite'].location='./droite.php?NOM_POSTE='+listed.options[listed.selectedIndex].value;
                    parent.frames['gauche_stat'].location='./gauche_bas.php?NOM_POSTE='+listed.options[listed.selectedIndex].value;
                }
            }
               
            function liste_lostfocus(textb, listd, calql) { // Masque le calque si le texte et la liste n'ont pas le focus
                if ( (self.document.activeElement.name != textb) && (self.document.activeElement.name != listd) ) {
                    calql.style.visibility = 'hidden';
                }
            }
           
            function getValue(textb,listd, calql) {    // Affecte la valeur de la liste choisie dans la zone de texte
                textb.value=listd.item(listd.selectedIndex).text;
                // textb.value=listd.item(listd.selectedIndex).value; si on veut la valeur dans le code et pas dans la liste
                calql.style.visibility = 'hidden';
                textb.focus();
                textb.select();
            }
           
            function list_size(liste) {
                t=0;
                for(i=0; i<liste.length; i++) {
                    if(liste.options[i].value.length > t) {
                    t=liste.options[i].value.length;
                    }
                }
                list_size=t;
            }
           
            function text_exist(textb, listd) { // regarde si le début existe
                if (textb.value != "") {
                    for (i=0; i<listd.length; i++) {
                    if (textb.value.toLowerCase() == listd[i].text.substring(0, textb.value.length).toLowerCase()) {
                        return i;
                    }
                    else {
                        if (listd[i].text > textb.value.substring(0, listd[i].text.length)) {
                        return -2;
                        }
                    }
                    }
                }
                return -1;
            }
           
            function disp_exist(textb, listd, calqt, calql) { // regarde si existe et affiche le calque de la liste
                temp=text_exist(textb, listd);
                if (temp != -1) {
                    display_liste(calqt, calql);
                }
                else {
                    calql.style.visibility = 'hidden';
                }
                return temp;
            }
           
            function text_match(textb, listd) { // regarde si le texte existe en entier
                if (textb.value != "") {
                    for (i=0; i<listd.length; i++) {
                    if (textb.value.toLowerCase() == listd[i].text.toLowerCase()) {
                        return i;
                    }
                    }
                }
                return -1;
            }
        </script>


Ensuite dans le body de la même page:

<div id="texte1" nowrap STYLE="BORDER-RIGHT:white 2px inset; BORDER-TOP:white 2px inset; DISPLAY:inline; VISIBILITY:visible; BORDER-LEFT:white 2px inset; WIDTH:0px; BORDER-BOTTOM:white 2px inset">
                           
    <asp:TextBox Runat="server" name="texteb" id="texteb" style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;FONT-SIZE:14px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px" Width="82" onDblClick="hide_liste(document.getElementById('texte1'), document.getElementById('liste1')); document.getElementById('texteb').select();" onblur="liste_lostfocus('texteb', 'listed', document.getElementById('liste1'));" onkeydown=" display_down(34, document.getElementById('listed'), document.getElementById('texte1'), document.getElementById('liste1'));" onkeyup="document.getElementById('listed').selectedIndex=disp_exist(document.getElementById('texteb'), document.getElementById('listed'), document.getElementById('texte1'), document.getElementById('liste1'));   display_down(40, document.getElementById('listed'), document.getElementById('texte1'), document.getElementById('liste1')); enter_list(document.getElementById('texteb'), document.getElementById('listed'), document.getElementById('liste1'));">
    </asp:TextBox>
   
    <input type="button" id="bouton" value="6" style="FONT-SIZE:10px;LINE-HEIGHT:0;FONT-FAMILY:webdings;HEIGHT:18px" onClick=" hide_liste(document.getElementById('texte1'), document.getElementById('liste1'));" onblur="liste_lostfocus('texteb', 'listed', document.getElementById('liste1'));">
</div>
<div id="liste1" STYLE="VISIBILITY:hidden;postion:absolute">
    <asp:DropDownList Runat="server" Autopostback="True" OnSelectedIndexChanged="ddl_SelectedIndexChanged" id="listed" name="listed" size="5" onClick="JScript:getValue(document.getElementById('texteb'),document.getElementById('listed'),document.getElementById('liste1'));__doPostBack(null,null);" onkeydown="JScript:enter_list(document.getElementById('texteb'),document.getElementById('listed'),document.getElementById('liste1'));">    </asp:DropDownList>
</div>


Ca fait un peu peur, vu comme ça, mais les styles prennent pas mal de place tout comme les évenements...

Dans le code behind, vous pouvez gérer l'événement OnSelectedIndexChanged de la ddl:

        public void ddl_SelectedIndexChanged(object sender, System.EventArgs e)
        {
           
        }


Je crois que je n'ai rien oublié...


Cab









mercredi 29 juin 2005 à 10:20:40 | Re : DropDownList éditable

jesusonline

Membre Club Administrateur CodeS-SourceS
j'ai pas tout lu le code, mais t'aurais pas un exemple en ligne ? t'as pas d'Ajax la ? :(

par contre j'ai vu a un endroit un __doPostBack(null,null);" utilise plutot __doPostBack(this.id, null)

et quand tu te sert de ca dans la page il faut etre sur qeu la fonction est ecrite dans la page, donc un me.page.registerpostback ou un truc du genre :p

en tout cas ca a l'air sympa :)


Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
mercredi 29 juin 2005 à 11:14:24 | Re : DropDownList éditable

cabbry

Le code dont je me suis inspiré est là:

http://javascriptfr.com/code.aspx?ID=20093

et non ça n'utilise pas d'Ajax, désolé...

Il reste des bugs, mais bon, le principal y est...



Cette discussion est classée dans : dropdownlist, éditable


Répondre à ce message

Sujets en rapport avec ce message

Datagrid éditable & dropdownlist [ par cabbry ] Bonjour, j'ai un petit problème avec un datagrid éditable. <asp:Templat AutoPostBack de dropdownlist [ par cabbry ] Bonjour, j'ai un datagrid qui possède une dropdownlist lorsqu'il est en édition... Cette dropdownlist à la propriété autopostback=true... Quand je Créer un Controle Utilisateur Web [ par matlocker ] Bonsoir a tous,J'essaye de créer mon premier controle utilisateur web et j'ai soucis.Mon control utilisateur Web est composé d'une dropDownList et d'u dropdownlist et base de données [ par marhoa ] Salut, J'ai créé une liste déroulante dans laquelle je mets les données tirées d'une requète. Cette requète me retourne un id et un libellé. J'arrive Popup ( Parent / Child ) Rafraichir la dropdownlist sur le parent. [ par Tam13 ] Salut tout le monde. J ai une fenetre parent dans laquelle j ai une dropdownlist qui se rempli a partir d'une base de donnée ( des marques ).Si une ma DropDownList avec une image [ par 2cO_o ] Bonjour,Je suis en pleine galère pour trouver le moyen de créer une DropDownList dans le style du bouton "suivant" de Internet Explorer 6.0C'est-à-dir Sélectionner le 1er élement d'un DropdownList [ par marhoa ] J'utilise un dropdownlist et lors de l'affichage de ma page, le premier élement de cette liste est automatiquement sélectionné. Vu que, derrière j'uti DropDownList : evenement en mode édition [ par vince233 ] Bonjour, En mode édition, j'ai deux dropdownLists et je souhaites que la première déclenche un évenement pour modifier le contenu de la deuxième le Visual Web Developer 2005 Express Béta 2 et Composant DropDownList [ par buff ] Bonjour, N'ayant pas trouvé réponse dans les newsgroups MSDN, je me permets de vous recontacter pour un problème rencontré sur Visual Web Develope ecrire dans un dropdownlist [ par marhoa ] salut, j'aimerais savoir s'il y a un moyen d'écrire dans une dropdownlist. (cela me permettrait de sélectionner un élement à partir du texte entré )J'


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 0,624 sec (4)

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