Question

Je développe un site de publication SharePoint et je prépare ses types de contenu et ses mises en page. J'ai besoin d'afficher la valeur pour un an avec le numéro de type. Le balisage est actuellement:

<SharePointWebControls:NumberField FieldName="Year" runat="server" id="Year" />

Le problème avec le comportement par défaut est qu'il montre chaque numéro avec une virgule, par exemple "2 009" au lieu de "2009". Existe-t-il un moyen de définir une sorte de syntaxe de chaîne.

J'ai essayé de créer un nouveau modèle de rendu qui ressemble à ceci:

<SharePoint:RenderingTemplate ID="YearNumberField" runat="server">
  <Template>
    <SharePoint:FormField ID="TextField" runat="server"/>
  </Template>
</SharePoint:RenderingTemplate>

... mais il ne semble pas y avoir de propriété «format» sur l'objet FormField.

Merci pour toute aide.

Mise à jour:

J'ai essayé d'envelopper la balise SharePoint: FormField dans SharePoint: FormattedString. Malheureusement, le champ n'a pas été formaté, les mêmes résultats que cette question.

Était-ce utile?

La solution

Le problème est que le modèle de rendu doit utiliser FormField. Cela rend toujours la valeur dans le format: 1 989. Pour résoudre cela, le texte rendu doit être piégé et modifié pour obtenir la sortie souhaitée. Voici deux approches pour résoudre ceci:

1. Écrivez un contrôle personnalisé hérité de Numberfield

Les méthodes Renderfieldfordisplay et RenderFieldForInput peuvent être remplacées pour fournir la sortie souhaitée. Des propriétés supplémentaires peuvent être ajoutées au contrôle pour décrire un comportement supplémentaire.

Avantages: Aucune modification des modèles de rendu requise.

2. Écrivez un contrôle personnalisé à utiliser dans le modèle de rendu

Un contrôle qui (par exemple) utilise des expressions régulières pour modifier le texte peut s'enrouler autour du contrôle FormField.

<SharePoint:RenderingTemplate ID="YearField" runat="server">
    <Template>
        <RX:RegexManipulatorControl runat="server"
                Mode="Replace"
                Expression=","
                Replacement="">
            <SharePoint:FormField runat="server"/>
        </RX:RegexManipulatorControl>
    </Template>
</SharePoint:RenderingTemplate>

Avantages: Une solution générique peut être utilisée pour tout type de champ.

Autres conseils

de Juste un autre blog SharePoint

Ouvrez la vue de la liste dans SharePoint Designer.

Cliquez avec le bouton droit sur les données Affichage du Web Part. (la liste)

Sélectionnez Convertir en vue de données XSLT

Cliquez sur le champ numérique que vous souhaitez formater

A> apparaîtra afficher le champ de données, format comme

Cliquez sur le format ci-dessous le format comme - Options de formatage numérique

Sous les options désélectionnez Utiliser 1000 séparateur

Cliquez sur OK

Enregistrez vos modifications et appuyez sur F12 pour prévisualiser

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top