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.

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top