ページレイアウトで番号フィールドをフォーマットすることは可能ですか?

StackOverflow https://stackoverflow.com/questions/760081

質問

SharePointパブリッシングサイトを開発し、コンテンツタイプとページレイアウトを設定しています。タイプ番号の1年間のフィールドの値を表示する必要があります。現在、マークアップは次のとおりです。

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

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

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

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

...しかし、Formfieldオブジェクトに「フォーマット」プロパティはないようです。

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

アップデート:

SharePoint:Formfieldタグ内のSharePoint:FormattedStringをラッピングしてみました。残念ながら、フィールドはフォーマットされておらず、同じ結果と同じ この質問.

役に立ちましたか?

解決

問題は、レンダリングテンプレートが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>

長所:ジェネリックソリューションは、あらゆるタイプのフィールドに使用できます。

他のヒント

から ちょうど別のSharePointブログ

SharePointデザイナーのリストビューを開きます。

Data View Webパーツを右クリックします。 (リスト)

XSLTデータビューへの変換を選択します

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

a>はデータフィールド、形式を表示して表示されます

以下の形式をクリックしてください - 数字のフォーマットオプション

オプションの下では、1000セパレーターを使用します

OK]をクリックします

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top