Il blog di Giuseppe Marchi - SharePoint MVP
NAVIGATION - SEARCH

Come settare il valore di default per un campo di tipo SPFieldBoolean

L'altro giorno mi è capitato di dover gestire un campo di tipo boolean (si/no) di una particolare lista SharePoint, attraverso il modello ad oggetti. La valorizzazione a fronte dell'inserimento o della modifica di un elemento di tale lista, risulta molto facile, in quanto la classe l'indice della classe SPListItem vuole come ti tipo un object generico, quindi per campo di tipo boolean basta passargli il valore true o false.

 SPListItem item = list.Items.Add();

item["Title"] = "test boolean field";
item["Boolean"] = true;
item.Update();

Per quanto riguarda invece, la valorizzazione del valore di default che deve avere il campo in questione, è un discorso un pò più diverso. Il valore di default di un campo va inserito all'interno della proprietà DefaultValue, ereditata dalla classe di base SPField (nel caso di un campo di tipo boolean entra in gioco la classe SPFieldBoolean); tale proprietà però, è di tipo string.
Ecco quindi, che non possiamo più utilizzare un valore booleano per la specifica del valore di default del nostro campo, neanche trasformandolo in stringa utilizzando il metodo ToString().
Per raggiungere il nostro obbiettivo, dobbiamo utilizzare una sintassi un pò diversa:

SPSite site = new SPSite("http://moss");

using (site)
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists["Listname"];
SPFieldBoolean boolean = list.Fields["BooleanField"] as SPFieldBoolean;
boolean.DefaultValue = "1";
//boolean.DefaultValue = "0"; boolean.Update();
list.Update();
}
}

Quindi "1" per l valore di default vero e "0" altrimenti.
Non mi pare di aver visto documentato niente a riguardo..
blog comments powered by Disqus