В SP 2010 есть замечательная новая функция, в которой вы можете указать пользовательскую формулу проверки и сообщение об ошибке для любого столбца.
По какой-то причине он не работает, когда вы заменяете NewForm.aspx по умолчанию для списка на пользовательскую форму, используя конструктор SharePoint «Создать новую форму списка -> Новая форма элемента». Он создает aspx, где он помещает элемент управления FormField для каждого поля выбранного типа содержимого вместо ListFormWebpart, который выполняет итерацию и рендеринг каждого поля без полей, явно указанных на странице.
Код для каждого поля в только что созданной пользовательской форме похож на следующий (только для иллюстрации)
<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>
Проблема заключается в том, что с формой «Создать новую форму списка -> Форма нового элемента» проверка формулы (новой sharepoint 2010) не работает: она проходит проверку формы только при сбое на этапе сохранения, что приводит к страница ошибки.
Является ли это каким-либо образом настраиваемым с помощью элемента управления FormField, или я могу каким-либо иным образом воспользоваться преимуществом этого нового механизма проверки sp2010 при использовании пользовательских (не ListFormWebpart) страниц элементов или мне нужно написать собственный графический интерфейс проверка в этом случае?
Спасибо!