2010-08-05 13 views
0

J'ai créé un champ de Sharepoint personnalisé et un renderplattern personnalisé pour elle:Sharepoint RenderPattern et DateTime « neutre » valeurs

<RenderPattern Name="DisplayPattern"> 

      <Column Name="Date" HTMLEncode="FALSE" Format="DateTime"/> 

</RenderPattern> 

Donc, fondamentalement, il est écrit sur la valeur brute du champ « Date ». Actuellement j'utilise la sortie clientide en utilisant Javascript:

... 
var date = new Date(rawDateString); 
... 

Ici, je lis la chaîne de date brute et l'analyse en un objet date. Cela fonctionne bien jusqu'à présent, mais je me demande si c'est une solution stable. La région Sharepoint/la langue/les paramètres d'heure auront-ils un impact sur cela? Je veux que cela fonctionne à travers différents paramètres.

Merci pour toute aide.

Répondre

1

Oui, cela peut causer des problèmes. Quel est le format de votre champ SharePoint personnalisé et de votre modèle de rendu?

JavaScript s'exécute côté client et les paramètres régionaux ne sont pas nécessairement les mêmes que le site SharePoint.

Par exemple, quelle est la date "08-06-2010"? Aux Etats-Unis son 6 août en Europe le 8 juin.

Si vous avez un utilisateur avec des paramètres régionaux au Royaume-Uni sur le bureau accédant à un site avec des paramètres régionaux américains, que se passera-t-il?

Si vous utilisez uniquement la chaîne en JavaScript et il n'a pas besoin d'être lisible par l'homme et faire correspondre les sites de paramètres régionaux puis utiliser un format qui reste exactement le même, indépendamment des paramètres régionaux tels que le RFC1123 format

// c# - Gives "Mon, 15 Jun 2009 20:45:30 GMT" regardless of regional settings 
return date.ToString("R"); 
+0

Oui mais dans un renderpattern je ne peux pas utiliser C#, j'ai besoin de le déclarer de manière déclarative: La seule option que j'ai est de modifier le " format "de cet élément xml. Des idées? – driAn

+0

Voir http://blogs.msdn.com/b/toddca/archive/2009/01/23/customizing-the-rendering-of-a-custom-spfield.aspx – Ryan