是否可以在页面布局中格式化一个数字?
-
09-09-2019 - |
题
我正在开发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进行预览
不隶属于 StackOverflow