IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ext JS / Sencha Discussion :

les resultats d'une combo dynamique ne s'affiche pas


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    729
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 729
    Par défaut les resultats d'une combo dynamique ne s'affiche pas
    Bonjour,
    ce post fait suite à un précédent.
    j'ai codé la combo suivante qui fonctionnait avant quelques modifications
    Voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
        var foundProtocolRecord = Ext.data.Record.create([
            {name: 'id'},
            {name: 'alias'}
        ]);
     
     
        var protocolSearchDataStore = new Ext.data.Store({
            proxy: new Ext.data.ScriptTagProxy({
                url: '<c:url value="/secure/getProtocolList.htm"/>'
     
            }),
            reader: new Ext.data.JsonReader({
    					root: 'rows',
    					totalProperty: 'totalCount',
    					id: 'id'
    					}, foundProtocolRecord
    				),
    		sortInfo: {
    			field: 'alias',
    			direction: 'ASC'
    		}
        });
     
        var protocolSearchResultTemplate = new Ext.XTemplate(
    		'<tpl for="."><div class="search-item">',
    			'<h3><img src="<c:url value="/img/study.gif"/>"/>  <spring:message code="dataEntryMgmt.alias"/>{alias}</h3><br />',
    		    '<i><spring:message code="dataEntryMgmt.protocolId"/>{id}</i>',
            '</div></tpl>'
    	);
     
    new Ext.form.ComboBox({
                                            id: 'protocolSearch',
                                            name: 'protocolSearch',
                                            hideLabel: true,
                                            store: protocolSearchDataStore,
                                            displayField:'alias',
                                            typeAhead: false,
                                            loadingText: '<spring:message code="dataEntryMgmt.protocolSearchLoadText"/>',
                                            width: 175,
                                            minChars: 3,
                                            hideTrigger:true,
                                            tpl: protocolSearchResultTemplate,
                                            itemSelector: 'div.search-item',
                                            /*select: function(combo, record, index) {*/
                                            onSelect: function(record){
                                                this.setValue(record.data.alias+" ("+record.data.id+")");
                                                Ext.getCmp("centerSearch").store.baseParams = { protocolId: record.data.id };
                                                this.collapse();
                                            },
                                            onFocus: function(){
                                                this.reset();
                                                Ext.getCmp("centerSearch").reset();
                                                Ext.getCmp("subjectTreeView").root.removeAll();
                                                Ext.getCmp("findASubject").reset();
                                             }
                                        }),
    La combo n'affiche plus de resultats. La requete est envoyée, j'ai vérifié dans firebug. La partie serveur codée en java fonctionne. Aucune erreur affichée. Je ne comprend pas pourquoi ca ne fonctionne plus. J'ai juste rajouté une petite partie au template et l'évènement onFocus.
    Par la même occasion, dans firebug je n'arrive pas à lire la reponse complete du serveur (reponse JSON) Y a t-il un moyen ?
    Merci pour votre reponse.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    729
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 729
    Par défaut
    J'ai avancé,
    il faut que j'enlève l'évènement "onFocus" et ca marche.
    La question est : comment le gérer différemment ? Merci pour vos réponse

  3. #3
    Membre éclairé Avatar de kanzarih
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2002
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2002
    Messages : 327
    Par défaut
    Dans un projet que j'ai codé il y a quelque temps, j'utilise ExtJS,Java, MSSQL SERVER

    Voila comment j'ai rempli un combobox dont les valeurs viennent d'une BD :

    Primo le combobox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    ...
    ,{
                    fieldLabel: 'Interface',
                    xtype:'combo',
                    name: 'interf',
                    mode: 'local',
                    store: new Ext.data.Store({
                                reader: new Ext.data.JsonReader({
                                    fields: ['id', 'ipadr'],
                                    root: 'rows'
                                }),
                                proxy: new Ext.data.HttpProxy({
                                    url: '../core/sside/getinterfaces.jsp'
                                }),
                                autoLoad: true
                            }),
                    displayField:'ipadr'
                },
    ...
    Maintenant le fichier getinterfaces.jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <%@ page import="java.sql.*" %>
    <%@ page import="java.io.FileInputStream" %>
    <%@ page import="java.io.FileWriter" %>
    <%@ page import="java.io.IOException" %>
    <%@ page import="java.text.DateFormat" %>
    <%@ page import="java.text.SimpleDateFormat" %>
    <%@ page import="java.util.Date" %>
    <%@ page import="java.util.Properties" %>
    <%@ page import="java.util.ArrayList" %>
    <%@ page import="java.util.List" %>
    <%@ page import="net.sf.json.*" %>
    <%@ page import="FCORE.cinter" %>
     
    <%
     
    Statement stmt = null;
    Properties init = new Properties();
    init.load(new FileInputStream("c:\\watcher\\conf\\wdb\\wdb.properties"));
     
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    Connection conn = DriverManager.getConnection("jdbc:sqlserver://"+ init.getProperty("dbhost")+":1414" +";databaseName="+init.getProperty("dbname")+";user="+init.getProperty("dbuser")+";password="+init.getProperty("dbpassword"));
     
    conn.setReadOnly(true);
     
    String SQL=" SELECT "+ init.getProperty("dbinterfacetableidcolumn")+","+init.getProperty("dbinterfacetableinterfaceipaddresscolumn") + " FROM " + init.getProperty("dbinterfacetablename") ;
    stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery(SQL);
    ArrayList list = new ArrayList();
    String menuString;
     
    while(rs.next()){
        cinter item = new cinter();
        item.setId(rs.getString(init.getProperty("dbinterfacetableidcolumn")).toString());
        item.setIpadr(rs.getString(init.getProperty("dbinterfacetableinterfaceipaddresscolumn")));
        list.add(item);
    }
     
    try {
        JSONArray jsonObject = JSONArray.fromObject(list);
        menuString = "{rows:"+jsonObject.toString()+"}";
    }catch (Exception e) {
        menuString = "Error";
    }
     
    out.print(menuString);
    out.flush();
     
    %>
    la classe cinter.java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    package FCORE;
     
    /**
     *
     * @author BIBOS
     */
    public class cinter {
        private String id;
        private String ipadr;
     
        public void setId(String id) {
            this.id = id;
        }
     
        public void setIpadr(String ipadr) {
            this.ipadr = ipadr;
        }
     
        public String getId() {
            return id;
        }
     
        public String getIpadr() {
            return ipadr;
        }
    }

Discussions similaires

  1. [MySQL] mettre les resultats d'une requete dans un select
    Par Ludo75 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 18/01/2006, 16h19
  2. afficher les resultats d'une requete mysql sur 3 colonnes
    Par harlock59 dans le forum Requêtes
    Réponses: 7
    Dernier message: 24/12/2005, 14h38
  3. Réponses: 5
    Dernier message: 25/07/2005, 14h03
  4. [debutant]compter les resultat d'une requete
    Par christophebmx dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/02/2005, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo