¿Es posible formatear un campo de número en un diseño de página?
-
09-09-2019 - |
Pregunta
Estoy desarrollando un sitio de publicación de SharePoint y configurando sus tipos de contenido y diseños de página. Necesito mostrar el valor para un campo de año con el número de tipo. El marcado actualmente es:
<SharePointWebControls:NumberField FieldName="Year" runat="server" id="Year" />
El problema con el comportamiento predeterminado es que muestra cada número con una coma, por ejemplo, "2,009" en lugar de "2009". ¿Hay alguna manera de configurar algún tipo de cadena. Sintaxis de formato en el campo para que se muestre correctamente?
Intenté crear una nueva plantilla de renderizado que se vea así:
<SharePoint:RenderingTemplate ID="YearNumberField" runat="server">
<Template>
<SharePoint:FormField ID="TextField" runat="server"/>
</Template>
</SharePoint:RenderingTemplate>
... Pero no parece haber ninguna propiedad de 'formato' en el objeto Formfield.
Gracias por cualquier ayuda.
Actualizar:
Intenté envolver la etiqueta de SharePoint: Formfield dentro de SharePoint: FormattedString. Lamentablemente, el campo no estaba formateado, los mismos resultados que esta pregunta.
Solución
El problema es que la plantilla de renderizado debe usar Formfield. Esto siempre hace que el valor en el formato: 1.989. Para resolver esto, el texto renderizado debe ser atrapado y alterado para obtener la salida deseada. Aquí hay dos enfoques para resolver esto:
1. Escriba un control personalizado heredado de Numberfield
Los métodos RenderfieldfordFordFordPlay y RenderfieldForInput se pueden anular para proporcionar la salida deseada. Se pueden agregar propiedades adicionales al control para describir el comportamiento adicional.
Pros: No se requieren cambios en las plantillas de representación.
2. Escriba un control personalizado para su uso en la plantilla de renderizado
Un control que (por ejemplo) usa expresiones regulares para alterar el texto puede envolver el control de 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>
Pros: la solución genérica se puede usar para cualquier tipo de campo.
Otros consejos
de Solo otro blog de SharePoint
Abra la vista de lista en SharePoint Designer.
Haga clic derecho en la parte web de la vista de datos. (la lista)
Seleccione Convertir a la vista de datos XSLT
Haga clic en el campo Número que desea formatear
A> aparecerá mostrando campo de datos, formato como
Haga clic en el formato de enlace a continuación como - Opciones de formato de número
En opciones, deselección, use 1000 separadores
Haga clic en Aceptar
Guarde sus cambios y presione F12 para obtener una vista previa