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

Bibliothèques & Frameworks Discussion :

EnhancedGrid : javascript error this.focus [Dojo]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Points : 535
    Points
    535
    Par défaut EnhancedGrid : javascript error this.focus
    Bonjour !

    Je rencontre un petit soucis avec un évènement "onclick" sur un enhancedGrid avec dojo 1.6.1.

    Je m'explique : Je crée un liste (avec un script php) que j'insère dans un itemFilReadStore et que j'ajoute dans un enhancedGrid. Une fois le grid créé, je crée un évènement onClick qui va récupérer l'id de la ligne afin d'afficher le détail de celle-ci dans un contentPane que je crée de toute pièce.
    Or lorsque je clique sur cette ligne, ma page se crée bien, en fait tout se passe bien sauf que j'ai un message d'erreur javascript qui apparait. Voici le détail de cette erreur récupéré avec firebug :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    this.focus is undefined
    (?)(e=click clientX=403, clientY=282)149 (ligne 75)
    (?)(e=click clientX=403, clientY=282)145 (ligne 14)
    (?)(m="doclick", e=click clientX=403, clientY=282)145 (ligne 14)
    (?)(e=click clientX=403, clientY=282)145 (ligne 14)
    (?)(e=click clientX=403, clientY=282)145 (ligne 14)
    (?)(e=click clientX=403, clientY=282)145 (ligne 14)
    toString()dojo.js (ligne 14)
    [Stopper sur une erreur] 	
     
    undefineddojo._scopeArgs = [undefined];
    Quelqu'un a t'il déjà rencontré ce soucis ?

    Avant de faire appel a un enhancedGrid j'utilisais un datagrid et il n'y avait aucun soucis.

    D'avance merci.

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Ce que j'imagine: quand tu crées ton contentPane il doit y avoir en interne un eval quelconque qui fait changer le contexte. Ensuite quand la grid continue de dérouler le code, elle fait un this.focus mais le this n'est plus l'élément de départ

    Regarde de ce côté là, et sinon passe le code que tu mets sur le click.

    ERE
    Quand une tête pense seule, elle devient folle.

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Points : 535
    Points
    535
    Par défaut
    J'ai essayé de virer toute action faite sur le grid apres le click mais ce ne change rien :'(
    Mon event onClick :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dojo.connect(dijit.byId('monTableau'), "onRowClick", function(evt){
    		var tableau = dijit.byId('monTableau');
    		var id = tableau.store.getValue(tableau.getItem(evt.rowIndex), "id");
    		id = id.substr(1, id.length);
    		creer_page('./Include/maPage.php?ref=' + id, "Page de référence : "+id);
    Mon code de création de contentPane :
    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
     
    var uploadBox = dijit.byId('uploadBox');
    			//On modifie la variable dijit.byId('chemin')
    			// pour identifier sur quelle partie on se trouve (demande ou proposition)
    			// pour pouvoir en registrer les pieces jointes dans la bonne partie.
    			if(lien.indexOf('Installations',0) == -1){
    				dijit.byId('chemin').set('value','demande');
    			} else {
    				dijit.byId('chemin').set('value','install');
    			}
    			// on verifie si dijit.byId('page') existe
    			// et si c'est le cas on le detruit ainsi que son contenu.
    			if(typeof(dijit.byId('page')) != "undefined" && dijit.byId('page') !== null){
    				dijit.byId('main2').removeChild(dijit.byId('page'));
    				dijit.byId('page').destroyRecursive(false);
    			}
    			// idem pour les fenetres des traitements ou demandes lors de recherche
    			if(typeof(dijit.byId('popup')) != "undefined" && dijit.byId('popup') !== null){
    				dijit.byId('popup').destroyRecursive(false);
    			}
    			if(typeof(dijit.byId('formTRT')) != "undefined" && dijit.byId('formTRT') !== null){
    				dijit.byId('formTRT').destroyRecursive(false);
    			}
    			// Idem pour le tableau utilisé pour les listes des propositions et demandes.
    			// if(typeof(dijit.byId('monTableau')) != "undefined" && dijit.byId('monTableau') !== null){
    				// dijit.byId('monTableau').destroyRecursive(false);
    			// }
    			// Idem pour la fenetre de recapitulatif d'etat et d'envoi mail.
    			if(typeof(dijit.byId('formDialog')) != "undefined" && dijit.byId('formDialog') !== null){
    				dijit.byId('formDialog').destroyRecursive(false);
    			}
    			//une fois fait 
    			//on (re)crée dijit.byId('page') et on affiche le contenu du lien.
    			var page = new dojox.layout.ContentPane({
    				id:'page',
    				region: "center",
    				loadingMessage: "<br><center>Veuillez patienter, chargement de la page en cours...</center>",
    				errorMessage: "<center>Une erreur est survenue. Impossible de charger le contenu de la page.<br> Veuillez réessayer ou rafraichir la page (F5).</center>",
    				executeScripts: "true", 
    				parseOnLoad: 'true', 
    				cleanContent: 'true', 
    				href: lien,
    				style: 'background-color:#f5eede;height:100px;margin:0px;padding:5px'
    			});
    			dijit.byId('main2').addChild(page);
    			dijit.byId('main2').startup();
    			//on "connecte" un évènement "au chargement"
    			// qui va exécuter les fonctions principales de rafrachissement 
    			// et d'execution une fois le contenu chargé
    			dojo.connect(dijit.byId('page'),"onLoad",function(){
    				chargement();
    				document.title = 'Suivi des Données de Test';
    				dojo.byId('recherche').focus();
    				envoiFormMenuDem();
    				envoiFormMenuInst();
    			});
    Je voulais utiliser l'enhancedGrid pour son plugin de pagination mais finalement ca ne reduit pas le delai de chargement de toutes les lignes vu que ca prend quand meme tout le store et de plus, ca n'a pas l'air de fonctionner comme il faut lorsque l'on veut afficher toutes les lignes. Et comme c'est pour réduire les délais que je dois en faire une va falloir que je trouve une autre facon

  4. #4
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Re,

    Désolé, mais là suis sec Tel quel il y a trop d'objets en jeux...

    Il faudrait pouvoir faire tourner et debugger ligne à ligne pour trouver le blème.

    Oups.

    ERE
    Quand une tête pense seule, elle devient folle.

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Points : 535
    Points
    535
    Par défaut
    Après un ligne par ligne ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    attempt to run compile-and-go script on a cleared scope
    anonymous()dojo.js (ligne 14)
    [Stopper sur une erreur] 	
     
    ...rn f?{}:null;}};dojo._getOpacity=d.isIE<9?function(node){try{return af(node).Opa...
    Au début, je n'avais pas l'erreur. J'ai l'impression qu'il faudrait un timer histoire de lui laisser le temps de faire son bazar

  6. #6
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Points : 535
    Points
    535
    Par défaut
    Etrange, en utilisant l'event "onCellClick", je n'ai pas de soucis avec le "this.focus".

    Ca me convient

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/03/2013, 13h47
  2. [OCaml] Error: This expression has type..
    Par jamboo dans le forum Caml
    Réponses: 6
    Dernier message: 14/11/2010, 19h09
  3. Réponses: 0
    Dernier message: 12/03/2010, 13h24
  4. href="javascript:display( this )"
    Par redkan dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 07/08/2009, 14h46
  5. Réponses: 2
    Dernier message: 24/04/2008, 15h31

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