Frage

Ich entwickle eine SharePoint Publishing -Site und richte seine Inhaltstypen und Seitenlayouts ein. Ich muss den Wert für ein Jahr mit Typnummer anzeigen. Das Markup ist derzeit:

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

Das Problem mit dem Standardverhalten ist, dass es jede Zahl mit einem Komma zeigt, z. B. "2.009" anstelle von "2009". Gibt es eine Möglichkeit, wie ich eine Art String.Format -Syntax auf das Feld festlegen kann, damit es korrekt angezeigt wird?

Ich habe versucht, eine neue Rendering -Vorlage zu erstellen, die so aussieht:

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

... aber es scheint keine 'Format' Eigenschaft auf dem Formfield -Objekt zu geben.

Danke für jede Hilfe.

Aktualisieren:

Ich habe versucht, das SharePoint: Formfield -Tag in SharePoint: formattedString zu wickeln. Leider wurde das Feld nicht formatiert, gleiche Ergebnisse wie diese Frage.

War es hilfreich?

Lösung

Das Problem ist, dass die Rendering -Vorlage das Formfeld verwenden muss. Dies macht immer den Wert im Format: 1.989. Um dies zu beheben, muss der gerenderte Text gefangen und geändert werden, um die gewünschte Ausgabe zu erhalten. Hier sind zwei Ansätze zur Lösung dieser:

1. Schreiben Sie eine benutzerdefinierte Steuerung, die von Numberfield geerbt wurde

Die Methoden Renderfieldfordisplay und RenderfieldForInput können überschrieben werden, um die gewünschte Ausgabe bereitzustellen. Der Kontrolle können zusätzliche Eigenschaften hinzugefügt werden, um zusätzliches Verhalten zu beschreiben.

Vorteile: Keine Änderungen an den Rendering -Vorlagen erforderlich.

2. Schreiben Sie eine benutzerdefinierte Steuerung für die Verwendung in der Rendering -Vorlage

Eine Steuerung, die (z. B.) regelmäßige Ausdrücke verwendet, um Text zu ändern, kann die Formfield -Steuerung einwickeln.

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

Vorteile: Generische Lösung kann für jede Art von Feld verwendet werden.

Andere Tipps

aus Nur ein weiterer SharePoint -Blog

Öffnen Sie die Listenansicht im SharePoint -Designer.

Klicken Sie mit der rechten Maustaste auf den Web -Teil der Datenansicht. (Die Liste)

Wählen Sie in XSLT -Datenansicht konvertieren

Klicken Sie auf das Feld Number, das Sie formatieren möchten

A> wird angezeigt, das das Datenfeld zeigt, Format als

Klicken Sie auf den Link unten -Format unter - Zahlenformatierungsoptionen

Unter Optionen Deaktivieren verwenden Sie 1000 Separator

OK klicken

Speichern Sie Ihre Änderungen und drücken Sie die F12 zur Vorschau

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top