É possível formatar um número Numberfield em um layout de página?
-
09-09-2019 - |
Pergunta
Estou desenvolvendo um site de publicação do SharePoint e configurando seus tipos de conteúdo e layouts de página. Preciso exibir o valor para um campo de ano com o número do tipo. A marcação atualmente é:
<SharePointWebControls:NumberField FieldName="Year" runat="server" id="Year" />
O problema com o comportamento padrão é que ele mostra cada número com uma vírgula, por exemplo, "2.009" em vez de "2009". Existe uma maneira de definir algum tipo de sintaxe de string.format no campo para fazê -la exibir corretamente?
Tentei criar um novo modelo de renderização que se parece com o seguinte:
<SharePoint:RenderingTemplate ID="YearNumberField" runat="server">
<Template>
<SharePoint:FormField ID="TextField" runat="server"/>
</Template>
</SharePoint:RenderingTemplate>
... mas não parece haver nenhuma propriedade de 'formato' no objeto FormField.
Obrigado por qualquer ajuda.
Atualizar:
Tentei encerrar o SharePoint: FormField Tag Inside SharePoint: FormattedString. Infelizmente o campo não foi formatado, os mesmos resultados que essa questão.
Solução
A questão é que o modelo de renderização deve usar o FormField. Isso sempre gera o valor no formato: 1.989. Para resolver isso, o texto renderizado precisa estar preso e alterado para obter a saída desejada. Aqui estão duas abordagens para resolver isso:
1. Escreva um controle personalizado herdado de Numberfield
Os métodos RenderFieldfordisplay e RenderFieldForInput podem ser substituídos para fornecer a saída desejada. Propriedades adicionais podem ser adicionadas ao controle para descrever comportamentos adicionais.
Prós: Não são necessárias alterações nos modelos de renderização.
2. Escreva um controle personalizado para uso no modelo de renderização
Um controle que (por exemplo) usa expressões regulares para alterar o texto pode envolver o controle do 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>
Prós: a solução genérica pode ser usada para qualquer tipo de campo.
Outras dicas
a partir de Apenas mais um blog do SharePoint
Abra a visualização da lista no SharePoint Designer.
Clique com o botão direito do mouse na Web Part. (a lista)
Selecione Converter para Visualização de dados XSLT
Clique no campo Número que você gostaria de formatar
A> aparecerá mostrando o campo de dados, formato como
Clique no formato do link abaixo como - Número de opções de formatação
Sob Opções desmarque o uso 1000 separador
Clique OK
Salve suas alterações e acerte o F12 para visualizar