PHP から来て、PHP は本当に気にしないので、特定の型を割り当てたり返したりすることに慣れていません。しかし、Java と C# の世界に戻ると、これらの言語は気にします。「この型を渡す」と言うと、その型が期待されます。それで、私は何を間違っていますか、これをSPList型にする方法を作成するにはどうすればよいですか
次のような非常に基本的な機能があります。
protected void createNewList(SPFeatureReceiverProperties properties)
{
Dictionary<string, List<AddParams>> param = new Dictionary<string, List<AddParams>>();
// Create the keys
param.Add("Name", new List<AddParams>());
param.Add("Type", new List<AddParams>());
param.Add("Description", new List<AddParams>());
// Set the values
param["Name"].Add(new AddParams { type = SPFieldType.Text, required = true });
param["Type"].Add(new AddParams { type = SPFieldType.Text, required = true });
param["Description"].Add(new AddParams { type = SPFieldType.Text, required = true });
// Create the really simple List.
new SPAPI.Lists.Create(properties, param, "Fake List", "Sample Description", SPListTemplateType.GenericList, "Sample View Description");
}
これにより、Web パーツをアクティブ化すると、SharePoint 2010 リストであるリストが作成されます。その名前は Fake List で、いくつかの列をそれらの尊重されたパラメーターとともに渡していることがわかります。このSPAPI.Lists.Create
方法を見てみましょう:
public Create(SPFeatureReceiverProperties properties, Dictionary<string, List<AddParams>> columns,
string name, string description, SPListTemplateType type, string viewDescription)
{
SPSite siteCollection = properties.Feature.Parent as SPSite;
if (siteCollection != null)
{
SPWeb web = siteCollection.RootWeb;
Guid Listid = 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].type, col.Value[0].required);
}
spList.Update();
//Create the view? - Possibly remove me.
System.Collections.Specialized.StringCollection stringCollection =
new System.Collections.Specialized.StringCollection();
foreach (KeyValuePair<string, List<AddParams>> col in columns)
{
stringCollection.Add(col.Key);
}
//Add the list.
spList.Views.Add(viewDescription, stringCollection, @"", 100,
true, true, Microsoft.SharePoint.SPViewCollection.SPViewType.Html, false);
spList.Update();
}
}
ここでは、Sharepoint で使用する SPList オブジェクトを作成するだけであることがわかります。展開すると、ページに追加できる新しいリストができます。だから問題は何ですか?
Php ではcreateNewList(SPFeatureReceiverProperties properties)
、タイプ SPList のオブジェクトを要求する関数に を渡すことができ、それは機能します (何かが欠けている場合を除きます >.>) ここでは、SPList ではありません。
だから私の質問は:
リストを作成し、SPLIst オブジェクトを返すことができるようにするには、何を変更する必要がありますか? それは同じくらい簡単ですかreturn new SPAPI.Lists.Create(properties, param, "Fake List", "Sample Description", SPListTemplateType.GenericList, "Sample View Description");
それは私には正しいように思えるからです。
アップデート
メソッド シグネチャを SPList に変更して を返してreturn new ....
も機能しませんでした。