1

我正在开发一个 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 对象上似乎没有任何“格式”属性。

谢谢你的帮助。

更新:

我尝试将 SharePoint:FormField 标记包装在 SharePoint:FormattedString 中。不幸的是,该字段未格式化,结果与此问题相同。

4

2 回答 2

0

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

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

来自另一个 SharePoint 博客

在 SharePoint Designer 中打开列表视图。

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

选择转换为 XSLT 数据视图

单击要格式化的数字字段

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

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

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

点击确定

保存更改并按 F12 进行预览

于 2009-04-21T16:24:55.987 回答