2009-04-17 62 views
1

我正在開發SharePoint發佈網站並設置其內容類型和頁面佈局。我需要顯示Number類型的Year字段的值。當前的標記是:是否可以在頁面佈局中格式化一個NumberField?

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

缺省行爲的問題是它用逗號顯示每個數字,例如, 「2,009」而不是「2009」。有沒有一種方法可以在字段上設置某種String.Format語法來使其正確顯示?

我試圖創建一個新的呈現模板,看起來像這樣:

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

...但似乎沒有成爲FormField對象的任何「格式」屬性。

感謝您的任何幫助。

更新:

我試圖包裹在SharePoint:FormField標記中的SharePoint:FormattedString。不幸的是,該字段沒有格式化,結果與this question相同。

回答

0

的問題是,呈現模板必須使用FormField。這總是呈現以下格式的值:1,989 & nbsp;。爲了解決這個問題,渲染的文本需要被捕獲並修改以獲得所需的輸出。這裏有兩種方法可解決此:

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> 

優點:通用的解決方案可用於任何類型的字段。

-1

只是另一個的SharePoint博客

打開在SharePoint Designer中 列表視圖。

右鍵單擊數據視圖Web部件。 (名單)

選擇轉換爲XSLT數據視圖

點擊你 想格式化

一個數場>會出現顯示數據字段, 格式

點擊格式爲 - 數字格式化選項

在選項下取消選擇使用1000 名分隔

單擊確定

保存更改並打F12以 預覽

+0

謝謝史蒂夫,但這是在頁面佈局中,沒有涉及的Web部件。 – 2009-04-22 09:58:19

相關問題