Je suis de PHP, et je ne pense pas comprendre comment marcher correctement dans les structures de données. La documentation de SPFieldCollection.Add est assez clair quel genre d'arguments qu'il faut, j'ai donc écrit une classe qui:Listes et Valeurs de la liste en C#
namespace SPAPI.Lists.Add
{
class AddParams
{
public SPFieldType type { get; set; }
public bool required { get; set; }
}
}
De là, je créé une liste qui fait:
public Create(SPFeatureReceiverProperties properties, Dictionary<string, List<AddParams>> columns, string name, string description, SPListTemplateType type)
{
SPSite siteCollection = properties.Feature.Parent as SPSite;
if (siteCollection != null)
{
SPWeb web = siteCollection.RootWeb;
web.Lists.Add(name, description, type);
web.Update();
// Add the new list and the new content.
SPList spList = web.Lists[name];
foreach(KeyValuePair<string, List<AddParams>> col in columns){
spList.Fields.Add(col.Key, col.Value[0], col.Value[1]);
}
// More Code ...
}
}
Le problème est, il n'aime pas col.Value[0]
, col.Value[1]
parce que l'un n'est pas un SPFieldType
et l'autre n'est pas un boolean
par définition stricte. Je pense que j'ai la bonne idée, mais je cherche des conseils sur la façon de faire ce travail.
Parce que C# est de type laissant entendre que je supposais qu'il utiliserait la classe AddParams
pour voir les types.
L'idée est de passer dans une série de params et de créer une nouvelle liste en fonction de ces params.
Ceci est plus d'une question C# et la question de la structure de données d'itération alors une question de développement de SP.
Avez-vous essayé coulée col.Value [0] et col.Value [1] à leurs types respectifs? – Rubixus
@Rubixus Cast ce que ... ces deux seraient AddParams, juste le premier et le second. – DonBoitnott
@Don Peut-être que je n'ai pas compris votre question. Pour moi, il semblait que votre problème était que col.Value [0] devrait être ajouté à Fields en tant que SPFieldType, et col.Value [1] devrait être booléen. Mais après avoir vu la réponse d'Igor, je vois ce que tu cherchais. – Rubixus