Domanda

C'è questa nuova funzionalità Cool in SP 2010 dove è possibile specificare una formula di convalida personalizzata e un messaggio di errore per qualsiasi colonna.

Per qualche motivo non funziona quando si sostituisce la nuova formazione predefinita.aspx per un elenco con un modulo personalizzato utilizzando SharePoint Designer's "Crea nuovo modulo di elenco -> Nuovo modulo articolo". Crea un ASPX dove mette un controllo di Formfield per ogni campo del tipo di contenuto selezionato al posto dell'elencoFormWebPart che itera e renda ogni campo senza campi esplicitamente menzionati sulla pagina.

Il codice per ogni campo su un modulo personalizzato appena creato è simile a quanto segue (solo per illustrare)

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

Il problema è che con un "Crea nuovo modulo di elenco -> Nuovo modulo articolo" Form La (nuova SharePoint 2010) La convalida della formula non funziona: passa la convalida sul modulo solo in errore sulla fase di salvataggio risultante in un Pagina di errore.

è in qualsiasi modo configuabile con il controllo del formfield o posso in qualsiasi altro modo prendere il BeniFit di questo nuovo meccanismo di convalida SP2010 quando si utilizza pagine di oggetti personalizzate (non listformwebpart) o devo scrivere GUI personalizzate convalida in questo caso?

Grazie!

È stato utile?

Soluzione

Il problema non è con il Controllo di Formfield stesso, ma con la web parte di DataFormWebPart che stava usando questi campi. Ci sono 2 problemi:

    .
  1. Con l'Uninquidere il campo lancia un'eccezione che dovrebbe essere gestita correttamente dal WebPart che mostra il messaggio che un elemento con tale valore del campo esiste già.Ma DataFormWebPart non gestisce questa eccezione, mentre la lista predefinitaFormWebPart fa.È simile con la formula di convalida personalizzata.
  2. I controlli del campo SharePoint implementano l'interfaccia Ivalidator in modo che il possesso WebPart possa convalidarli e visualizzare messaggi appropriati (ad esempio i campi di ricerca richiesti), ma il dataformwebpart non lo fa (lo fa listFormWebPart)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top