Можно ли отформатировать числовое поле в макете страницы?
-
09-09-2019 - |
Вопрос
Я разрабатываю сайт издательства 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, чтобы просмотреть