Формифилд игнорирует формулу проверки столбцов
-
14-09-2020 - |
Вопрос
Есть эта классная новая функция в SP 2010, где вы можете указать пользовательскую формулу проверки и сообщение об ошибке для любого столбца.
По какой-то причине он не работает, когда вы заменяете по умолчанию Newform.aspx для списка с пользовательской формой, используя FarePoint Designer's «Создать новый список формы -> формы нового элемента». Он создает ASPX, в котором он ставит элемент управления Formfield для каждого поля выбранного типа содержимого вместо ListFormWart, который итерации и образуют каждое поле без полей, явно упомянутых на странице.
Код для каждого поля на просто созданную пользовательскую форму аналогичен следующему (просто иллюстрировать)
<tr>
<td width="190px" valign="top" class="ms-formlabel">
<H3 class="ms-standardheader">
<nobr>PhoneNumber</nobr></H3>
</td>
<td width="400px" valign="top" class="ms-formbody">
<SharePoint:FormField runat="server" id="ff4{$Pos}" ControlMode="New" FieldName="PhoneNumber" __designer:bind="{ddwrt:DataBind('i',concat('ff4',$Pos),'Value','ValueChanged','ID',ddwrt:EscapeDelims(string(@ID)),'@PhoneNumber')}"/>
<SharePoint:FieldDescription runat="server" id="ff4description{$Pos}" FieldName="PhoneNumber" ControlMode="New"/>
</td>
</tr>
.
Проблема в том, что с «созданием нового списка формы -> новая форма элемента» образуют проверку формулы (New SharePoint 2010), не работают: он передает проверку в форме только в состоянии сохранения в результате Страница ошибок.
Это каким-либо образом настроен на конфигурацию с элементом управления Formfield или могу ли я в любом другом способе взять на себя обеспечение этого нового механизма проверки SP2010 при использовании страниц пользовательских (без листовых форматов) или я должен писать пользовательские GUI Валидация в этом случае?
Спасибо!
Решение
Проблема не с самого элемента управления Formfield, но с веб-частью DataFormWormward I использовал эти поля. Есть 2 вопроса:
- с неосведомленностью. Поле бросает исключение, которое должно быть правильно обрабатывается веб-сайтом, показывающим сообщение о том, что элемент с таким значением поля уже существует.Но dataformwebpart не обрабатывает это исключение, а listformward по умолчанию делает.Это похоже с пользовательской формулой валидации.
- Регистрация поля SharePoint Реализуйте интерфейс iValidator, чтобы веб-сайт Ivalidator может их проверить и отображать соответствующие сообщения (например, для необходимых полей поиска), но файл DataFormWebPart не делает этого (IS ListFormWebPart)