2012-05-07 10 views
0

他の機能によって読み取られる設定リストテンプレートを含むSharepoint機能があります。リストには、すべての作業に特有の名前が必要です。リストテンプレートの代わりにリストを作成するのが理想的です。Sharepoint Server 2010の機能インストール時にリストを作成

メソッドをオーバーライドして、EventReceiverクラスで試してみました。それはSPFeatureReceiverPropertiesタイプのパラメータを受け取ります。私はドキュメントを見て、という1つのプロパティが、Siteのスコープ付きソリューションであれば、その機能がインストールされているSPSiteを参照していることがわかりました。そのようにして、この機能に含まれるリストテンプレートから特定のリストを作成するコードを作成したかったのです。

SPWeb_object.Lists.Add(listName, "", SPListTemplate_object) 

ただし、プロパティはnullで、Featureプロパティです。 SPSiteオブジェクトを取得できないため、SPWebオブジェクトを取得できません。

他のアイデアはありますか?

+0

あなたのSharepointプロジェクトでは、実装時にリストが作成されていますか? – ironman

+0

私はそれを持ちたいです。そして、そのリストをテンプレートから作成することが望ましいでしょう。これまでのところ私はテンプレートしか持っていません。 – AlexanderMP

答えて

2

新しいリストインスタンスのListInstance構造を作成できます。これを参照してください:http://msdn.microsoft.com/en-us/library/ms476062.aspx リストはその特定の機能を有効にすると作成されます。機能の自動有効化のために、機能ステープルを使用することができます。これを参照してくださいhttp://msdn.microsoft.com/en-us/library/ff648422.aspx

+0

私は ''を作成した後、コンテンツの種類、次にリストの定義を作成し、データで埋めました。それは働いた、ありがとう。 – AlexanderMP

1

リストの作成は非常に一般的な要件です。別のポスターで示唆されているように、インストールではなく起動時にリストインスタンスを作成するのが最善の方法です。あなたはそうのような希望の活性化スコープ(機能が活性化されているSPWebやSPSiteオブジェクト)にアクセスすることができます

SPWeb web = (SPWeb)properties.Feature.Parent;

または

SPSite site = (SPSite)properties.Feature.Parent;

ホープ、このことができます。

+0

私がこの質問で触れたように、私の場合は 'properties.Feature'はnullです。私は現在Vojtech Nadvornikが提案したのと同様の解決策を試しています。 – AlexanderMP

+1

SPWeb、SPSiteまたはSPWebApplicationのスコープのフィーチャの場合、properties.Featureメンバをnullにすることはできません。そうであれば、カスタムソリューションおよび/またはファーム構成で何かが間違っている可能性があります。どのように進行するかにかかわらず、根本原因に対処することが最善の方法かもしれません。 –

関連する問題