Можно ли отформатировать числовое поле в макете страницы?

StackOverflow https://stackoverflow.com/questions/760081

Вопрос

Я разрабатываю сайт издательства SharePoint и настраиваю его типы контента и макеты страниц. Мне нужно отобразить значение для года с номером типа. Наценка в настоящее время:

<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 нет какого -либо свойства «формат».

Спасибо за помощь.

Обновлять:

Я попытался завернуть SharePoint: Formfield Tag внутри SharePoint: FormattedString. К сожалению, поле не было отформатировано, то же самое, что и этот вопрос.

Это было полезно?

Решение

Вопрос в том, что шаблон рендеринга должен использовать Formfield. Это всегда делает ценность в формате: 1989. Анкет Чтобы разрешить это визуализированный текст, необходимо поймать в ловушку и изменен, чтобы получить желаемый выход. Вот два подхода к решению этого:

1. Напишите пользовательский элемент управления, унаследованным от Numberfield

Методы renderfieldisplay и 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> будет отображаться, показывающее поле данных, формат как

Нажмите на ссылку ниже формат как - параметры форматирования номеров

Под параметрами Deselete Используйте 1000 Сепаратор

Нажмите ОК

Сохраните свои изменения и нажмите F12, чтобы просмотреть

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top