我正在开发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相同。
答案 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键 预览