代码之家  ›  专栏  ›  技术社区  ›  Alex Angas Colin

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

  •  1
  • Alex Angas Colin  · 技术社区  · 16 年前

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

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

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

    我尝试创建一个新的呈现模板,如下所示:

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

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

    谢谢你的帮助。

    更新:

    我尝试在sharepoint:formattedstring中包装sharepoint:formfield标记。很遗憾,该字段没有格式化,结果与 this question .

    2 回复  |  直到 14 年前
        1
  •  0
  •   Alex Angas Colin    16 年前

    问题是呈现模板必须使用FormField。这始终以以下格式呈现值: 1989; . 要解决此问题,需要捕获并更改呈现的文本,以获得所需的输出。解决这一问题有两种方法:

    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>
    

    优点:通用解决方案可用于任何类型的字段。

        2
  •  -1
  •   Steve Ruiz    16 年前

    只是另一个SharePoint博客

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

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

    选择“转换为XSLT数据视图”

    点击数字字段 喜欢格式化

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

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

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

    单击确定

    保存更改并按F12至 预览

    推荐文章