是否可以在页面布局中格式化数字字段?

时间:2009-04-17 11:41:07

标签: sharepoint formatting moss page-layout

我正在开发SharePoint发布网站并设置其内容类型和页面布局。我需要显示类型为Number的Year字段的值。目前的标记是:

<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对象上似乎没有任何'Format'属性。

感谢您的帮助。

更新

我尝试在SharePoint中包装SharePoint:FormField标记:FormattedString。遗憾的是,该字段未格式化,结果与this question相同。

2 个答案:

答案 0 :(得分:0)

问题是渲染模板必须使用FormField。这始终以以下格式呈现值: 1,989&amp; 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 :(得分:-1)

来自另一个SharePoint博客

  

在SharePoint中打开列表视图   设计器。

     

右键单击数据视图Web部件。   (清单)

     

选择转换为XSLT数据视图

     

单击您想要的数字字段   喜欢格式化

     

A&gt;将出现显示数据字段,   格式为

     

点击下面的链接格式为 -   数字格式选项

     

在“选项”下,取消选择“使用1000”   分离器

     

单击“确定”

     

保存更改并按F12键   预览