DisplayField - Comment le format de la date?
J'ai besoin d'afficher un accès en lecture seule des données. J'ai choisi le DisplayField composant pour ce faire. Mon problème est que je voudrais un moyen facile d'appel BasicForm.setValues(values)
et ont une chaîne de date automatiquement s'affichent correctement dans l'un des displayFields. Je n'ai pas trouvé quelque chose qui va le faire pour moi (par exemple, un convertisseur de fonction), et je viens de formater la date de chaîne manuellement avant de faire appel à setValues(values)
. Est-il une nappe façon de le faire?
Merci!
OriginalL'auteur John Gordon | 2010-12-07
Vous devez vous connecter pour publier un commentaire.
Ok si vous utilisez une forme directe de charge, alors vous devez écouter le formulaire de BasicForm 'actioncomplete de l'événement. Lorsque cet événement se déclenche le gestionnaire, a fourni deux arguments. La première est la BasicForm et le second argument est un Ext.forme.L'Action de l'objet. Nous sommes particulièrement à la recherche pour un Poste.forme.D'Action.Charger un objet. De là, nous avons accès à l'action.objet de données et nous pouvons massage les valeurs de données avant de ce gestionnaire renvoie les valeurs sont entrées dans le formulaire.
Maintenant tous vous avez besoin dans votre formulaire est un displayField nommé "someFormattedDate" et Bob's your uncle (de l'argot Australien pour c'est du tout bon). Vous pouvez également obtenir exactement la même chose par "un succès:" fonction de votre myForm.getForm().load() de l'appel. Voir la ExtJS docs pour Ext.forme.D'Action.De la charge.
Cheers, t00bs.
OriginalL'auteur Bruce
J'ai fini de sous-classement displayField. Qui semble fonctionner le mieux, mais je souhaite qu'il y ait un out-of-the-box correctif pour quelque chose d'aussi fondamental que l'affichage d'une date formatée. C'est mon premier passage chez elle, c'est juste un exemple.
OriginalL'auteur John Gordon
Je suis tombé sur ce même problème car j'aime transmettre mes dates autour comme des timestamps Unix et j'ai eu une exigence pour les afficher à l'aide de différents formats selon le contexte. Voici comment je l'ai fait.
Si vous chargez des données par le biais d'un magasin, puis vous pouvez utiliser la fonction de conversion fournis par Ext.les données.Champ. Par exemple:
Voici quelques fonctions de conversion:
Où sf est la source de champ nous sommes découlant de la date formatée de la chaîne d'.
Noter ce qui suit, c'est important. La fonction convert() la fonction est présenté avec une copie de l'enregistrement de données tel que lu par le lecteur de (c'est dans le ExtJS docs). Cela signifie que vous ne pouvez pas utiliser les champs mappés dans vos conversions. Dans les champs de tableau ci-dessus, j'ai un champ défini comme,
Donc, je suis de la création de la sysTestedDateObj date objet de la sysTestedDateTS champ et j'ai dit au lecteur que je veux me donner une date objet dérivé à partir d'un objet contenant un timestamp Unix. C'est un bel objet à avoir pour plus tard, mais il ne sera pas de la partie de l'enregistrement de données transmis à notre fonction de conversion.
Également de noter que la fonction de conversion peut référencer des champs dans l'enregistrement qui ne sont pas définis pour une utilisation par le magasin. Dans l'exemple ci-dessus, je un en utilisant le champ sysTestedDateTS dans une fonction de conversion parce que je sais que le serveur fournit dans sa réponse JSON, mais parce que je n'ai pas défini dans le tableau de champs, il ne sera pas disponible via la boutique à la consommation du composant.
OriginalL'auteur Bruce
http://dev.sencha.com/deploy/dev/docs/?class=Ext.util.Format
Je pense que dateRenderer est le moteur de rendu de la fonction que vous recherchez?
BasicForm.setValues()
appelssetValue()
sur son terrain.OriginalL'auteur Keylan
Ext.forme.champ.D'affichage.html#cfg-rendu
Ext.Date.html#method-format
OriginalL'auteur Snger