Comment actualiser un panneau après chargement des données?
J'ai un extjs panneau de rendu à l'intérieur d'un div comme ceci:
panel = new Ext.Panel({
layout : 'fit',
renderTo: 'my_div',
monitorResize: true, //relay on browser resize
height: 500,
autoWidth: true,
items : [
centerPanel
],
plain : true
});
Une fois la page chargée, le panneau est vide, mais quand je redimensionner le navigateur, le contenu apparaît par magie!
Je pense que les données n'ont pas fini de se charger, lorsque le panneau est rendu pour la première fois.
Comment puis-je obtenir le contenu à afficher sans redimensionnement du navigateur?
ressemble très similaires problème que le mien: stackoverflow.com/questions/4302727/...
similaire dans mon panneau est également en fonction de plusieurs webservices (appelés dans centerPanel), mais est-il aussi de l'affichage du contenu seulement après que le navigateur a été redimensionnée?
similaire dans mon panneau est également en fonction de plusieurs webservices (appelés dans centerPanel), mais est-il aussi de l'affichage du contenu seulement après que le navigateur a été redimensionnée?
OriginalL'auteur huug | 2010-11-29
Vous devez vous connecter pour publier un commentaire.
Je soupçonne que le problème est que vous devez explicitement en cause le panneau de rendu. Après la création du groupe, de faire l'appel suivant:
Sencha documentation dit "Un appel à cette fonction est nécessaire après l'ajout d'un nouveau composant à une déjà rendu conteneur, ou éventuellement après modification de dimensionnement/de position propriétés des composants enfants."
Je suis en utilisant cshtml les codes et les lier à un moteur de rendu en fonction du code JS. Le moteur de rendu qu'une fonction ne tiraient au chargement de la page. Je veux le lancer manuellement à partir de JS et doLayout n'aide pas. Avez-vous une idée ?
OriginalL'auteur tedder
Aucune raison pourquoi vous êtes imbrication d'un panneau à l'intérieur d'un panneau? Semble comme
centerPanel
pourrait être directement rendus à votre div contenant. Aussi, le problème est probablement la façon dont vous avezcenterPanel
configuré, ou la façon dont vous êtes en train de charger, ni de qui vous êtes montrant ici. Vous ne devriez pas besoin d'appelerdoLayout()
manuellement dans ce cas, c'est probablement un problème avec la façon dont vos composants sont configurés.Dans une plus grande mise en page, oui, parfois. Mais en général, quand quelqu'un est imbrication d'un seul panneau directement à l'intérieur d'un seul panneau avec mise en page: ajustement qui indique un manque de compréhension de l'Ext du conteneur/stratégie de mise en page. Je ne pense pas que vous avez pris la peine de lire le contexte complet de la question avant de downvoting moi. Merci.
OriginalL'auteur Brian Moeskau
bmoeskau est droit, également, ma conjecture est que vous avez un async demande de serveur qui se charge de vos données (magasin.charge, ajax, etc) -on pourrait appeler la mise en page après que stocker des charges par regestering une fonction de rappel (voir sencha docs)
OriginalL'auteur dbrin
faneuse suggestion m'a aidé, mais en lui-même n'a pas de résoudre un problème similaire que j'avais: l'ajout d'un
Ext.draw.Component
j'ai eu un panneau.La partie la plus curieuse est, le groupe avait l'air blanc, mais les DOM composants étaient tous là et que je puisse les inspecter en utilisant par exemple Chrome developer tools.
J'ai eu de travail en utilisant une solution de contournement. J'ai ajouté ces 2 instructions après l'appel à
this.add(component)
:Cacher le panneau avant de la rendre à nouveau visible, dans certains manière obscure, fait le travail.
OriginalL'auteur Paolo Stefan