1

SharePoint 発行サイトを開発し、そのコンテンツ タイプとページ レイアウトを設定しています。Number 型の Year フィールドの値を表示する必要があります。現在のマークアップは次のとおりです。

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

デフォルトの動作の問題は、「2009」ではなく「2,009」など、各数値がカンマで表示されることです。フィールドにある種の String.Format 構文を設定して正しく表示する方法はありますか?

次のような新しいレンダリング テンプレートを作成してみました。

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

...しかし、FormField オブジェクトには「Format」プロパティがないようです。

助けてくれてありがとう。

アップデート:

SharePoint:FormattedString 内に SharePoint:FormField タグをラップしてみました。残念ながら、フィールドはフォーマットされていませんでした。この質問と同じ結果です。

4

2 に答える 2

0

問題は、レンダリング テンプレートが FormField を使用する必要があることです。これにより、値は常に次の形式で表示されます: 1,989  . これを解決するには、レンダリングされたテキストをトラップして変更し、目的の出力を得る必要があります。これを解決するには、次の 2 つの方法があります。

1. NumberField から継承したカスタム コントロールを作成する

RenderFieldForDisplay および RenderFieldForInput メソッドをオーバーライドして、目的の出力を提供できます。コントロールに追加のプロパティを追加して、追加の動作を記述することができます。

長所: レンダリング テンプレートを変更する必要はありません。

2. レンダリング テンプレートで使用するカスタム コントロールを作成する

たとえば、正規表現を使用してテキストを変更するコントロールは、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>

長所: 一般的なソリューションは、あらゆるタイプのフィールドに使用できます。

于 2009-05-12T13:34:12.403 に答える
-1

Just Another SharePoint ブログから

SharePoint Designer でリスト ビューを開きます。

データ ビュー Web パーツを右クリックします。(リスト)

[XSLT データ ビューに変換] を選択します。

フォーマットする数値フィールドをクリックします

>が表示され、データフィールド、フォーマットが表示されます

下のリンクをクリックして、[形式] - [数値の書式設定オプション] をクリックします。

[オプション] で [1000 区切りを使用] の選択を解除します

[OK] をクリックします。

変更を保存し、F12 を押してプレビューします

于 2009-04-21T16:24:55.987 に答える