Monday, January 28, 2013

SharePoint 2010 - Impostare ListId di un FormField da codebehind

Con Visual Studio, si è rivelato molto comodo poter utilizzare i FormField per form di inserimento o modifica degli item di una lista.
Purtroppo, sembrava inutile ogni nostro tentativo di impostare via codice il parametro ListId, così per un paio di volte abbiamo dovuto fare l'inserimento del GUID della lista manualmente....
Con tutti i problemi del caso, per i deploy in altre macchine, ad esempio.

Poi, finalmente, il post giusto ci dà l'imbeccata per il metodo che segue e che è stato risolutivo!

Utilizzare il FormField come segue, inserendo una funzione OnInit e non impostando ListId.

<SharePoint:FormField ID="FormField1" OnInit="setFormFieldListId_OnInit" ControlMode="Edit" FieldName="ColumnName" runat="server" />

A codice, definire la funzione indicata qui sotto, in cui viene impostato il ListId alla creazione del controllo:

protected void setFormFieldListId_OnInit(object sender, EventArgs e)
{
       FormField ff = (FormField)sender;
       ff.ListId = list.ID;
}

Ovviamente, list = oggetto SPList opportunamente richiamato dal contesto web (ad es. web.GetList(urlList) ).

Buon utilizzo!