我正在开发SharePoint发布网站,并设置其内容类型和页面布局。我需要显示带有类型号的年度字段的值。当前的标记是:

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

默认行为的问题在于,它显示了每个数字,例如“ 2,009”,而不是“ 2009”。有什么方法可以在字段上设置某种字符串。Format语法使其正确显示?

我尝试创建一个看起来像这样的新渲染模板:

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

...但是,FormField对象上似乎没有任何“格式”属性。

谢谢你的帮助。

更新:

我尝试包装SharePoint:formfield标签SharePoint:FormattedString。不幸的是该字段没有格式化,结果与 这个问题.

有帮助吗?

解决方案

问题是渲染模板必须使用FormField。这总是以格式呈现值: 1,989. 。为了解决此问题,需要将渲染的文本捕获和更改以获取所需的输出。这是解决此问题的两种方法:

1.写一个从数字菲尔德继承的自定义控件

可以覆盖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 Designer中打开列表视图。

右键单击数据查看网络部分。 (名单)

选择转换为XSLT数据视图

单击您要格式化的数字字段

a>将出现显示数据字段,格式为

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

在选项下取消使用1000分隔符

单击确定

保存您的更改并点击F12进行预览

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top