2009-04-17 5 views
1

Ich entwickle eine SharePoint-Veröffentlichungssite und richte ihre Inhaltstypen und Seitenlayouts ein. Ich muss den Wert für ein Year-Feld mit dem Typ Number anzeigen. Das Markup ist zur Zeit:Kann ein NumberField in einem Seitenlayout formatiert werden?

Das Problem mit dem Standardverhalten ist, dass es jede Zahl mit einem Komma, z. "2.009" statt "2009". Gibt es eine Möglichkeit, eine Art String.Format-Syntax auf dem Feld zu setzen, damit es richtig angezeigt wird?

Ich habe versucht, eine neue Rendering-Vorlage erstellen, die wie folgt aussieht:

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

... aber es scheint nicht zu sein, jede ‚Format‘ Eigenschaft auf dem Objekt Formfield.

Danke für jede Hilfe.

Update:

ich die Sharepoint versucht Verpackung: Formfield-Tag in Sharepoint: FormattedString. Leider wurde das Feld nicht formatiert, gleiche Ergebnisse wie this question.

Antwort

0

Das Problem ist, dass die Rendering-Vorlage Formfield verwenden. Dadurch wird der Wert immer im folgenden Format dargestellt: 1,989 & nbsp;. Um dies zu beheben, muss der gerenderte Text abgefangen und geändert werden, um die gewünschte Ausgabe zu erhalten. Hier sind zwei Ansätze zur Lösung dieses:

1. Schreiben eine individuelle Steuerung geerbt von Number

Die RenderFieldForDisplay und RenderFieldForInput Verfahren außer Kraft gesetzt werden kann, um die gewünschte Ausgabe zu liefern. Zusätzliche Eigenschaften können dem Steuerelement hinzugefügt werden, um zusätzliches Verhalten zu beschreiben.

Vorteile: Keine Änderungen an Rendervorlagen erforderlich.

2. Schreiben Sie eine benutzerdefinierte Steuerung zur Verwendung in der Rendering-Vorlage

ein Steuerelement, das (zum Beispiel) Text zu ändern, reguläre Ausdrücke verwendet um die Formfield-Steuer wickeln kann.

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

Pro: generische Lösung kann für jede Art des Feldes verwendet werden.

-1

von Just Another Sharepoint Blog

Öffnen Sie die Listenansicht in Sharepoint Designer .

Klicken Sie mit der rechten Maustaste auf den Datenansicht-Webpart. (die Liste)

Wählen Sie, um XSLT-Datenansicht konvertieren

Klicken Sie auf das Nummernfeld würden Sie wie

A zu formatieren> wird Datenfeld erscheinen zeigt, Format Als

Click auf dem Link unter Format As - Optionen zur Formatierung von Zahlen

Unter Optionen deaktivieren Sie die Option Verwenden Sie 1000 Separator

Klicken Sie auf OK

Speichern Sie Ihre Änderungen ein und drücken Sie F12, um Vorschau

+0

Danke Steve, aber das ist in einem Seitenlayout, es sind keine Webparts beteiligt. –

Verwandte Themen