Pregunta

Hay esta nueva característica nueva en SP 2010, donde puede especificar una fórmula de validación personalizada y un mensaje de error para cualquier columna.

Por alguna razón, no funciona cuando reemplaza el predeterminado NewForm.aspx para una lista con un formulario personalizado utilizando el "Crear nuevo formulario de lista de la lista de SharePoint Designer". Crea un ASPX en el que pone un control de formulario de formularios para cada campo del tipo de contenido seleccionado en lugar de ListFormWebPart, que itera y representa cada campo sin campos, mencionados explícitamente en la página.

El código para cada campo en un formulario personalizado creado, es similar a lo siguiente (solo para ilustrar)

<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>

El problema es que con un "Crear nuevo formulario de lista -> Formulario de nuevo artículo" Formulario (New SharePoint 2010) La validación de la fórmula no funciona: Pasa la validación en el formulario solo que falla en la etapa de guardado que resulta en un Página de error.

¿Es de alguna manera configurado con el control de Formield o puedo, de alguna otra manera, acepte el benifit de este nuevo mecanismo de validación SP2010 al usar las páginas de elementos personalizadas (no listFormWebPart) o tengo que escribir GUI personalizado ¿Validación en este caso?

¡Gracias!

¿Fue útil?

Solución

El problema no está con el propio control del campo de formulario, pero con la parte web de DataFormWebPart Web I estaba usando estos campos. Hay 2 problemas:

  1. Con la falta de estado, el campo arroja una excepción que debería ser manejada correctamente por la página web que muestra el mensaje de que ya existe un elemento con dicho valor del campo.Pero el DataFormWebPart no maneja esta excepción, mientras que lo hace ListFormWebPart predeterminado.Es similar con la fórmula de validación personalizada.
  2. Los controles de campo de SharePoint implementan la interfaz de Ivalidator para que la PAZA PROPIEDADA PODERÍA
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top