Visual Studio 2010を使用してSharePoint 2007のカスタム機能を作成しました。この機能を有効にすると、サイトコレクションのすべてのドキュメントライブラリで機能が失われます。特定のドキュメントライブラリ/リストインスタンスでフィーチャを起動させる方法の例を教えてください。特定のドキュメントライブラリでSharePoint 2007機能を有効にするには
0
A
答えて
0
まず、あなたの機能にEventReceiverを追加する必要があり、その後、あなたのフィーチャーのXMLでは、このように、ReceiverClassを追加します:
<Feature Id="f68efad8-ea0a-42a2-9994-db3b74aa67f8"
Title="My features title"
Description="Blah blah blah"
Version="12.0.0.0"
Hidden="FALSE"
Scope="Web"
DefaultResourceFile="core"
ReceiverAssembly="MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c4f34f956cd0552b"
ReceiverClass="MyProject.FeatureCode.EventHandler" <!-- This is where you set the EventReceiver -->
xmlns="http://schemas.microsoft.com/sharepoint/">
のEventHandlerあなたは機能が作動しているときEventReceiverています。
私の例
私eventreceiver、第一に:上記の例では
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
var assembly = typeof(PermissionHandler).Assembly.ToString();
var classList = typeof(PermissionHandler).FullName;
var web = SPContext.Current.Web;
web.AllowUnsafeUpdates = true;
try
{
var list = web.Lists["MyList"];
list.EventReceivers.Add(SPEventReceiverType.ItemAdded, assembly, classList);
list.EventReceivers.Add(SPEventReceiverType.ItemUpdated, assembly, classList);
}
catch (Exception ex)
{
EventLogger.LogError("Sample feature failed to run.", this, ex);
}
}
私は、マイリストの要素にいくつかの権限を追加します。 私は仕事をするために作成したパブリッククラスであるtypeof(PermissionHandler)である2つの変数を作成します。
この機能を有効にする前にリストに5つの項目を追加しました。そのため、既存の項目にも新しい項目の設定権限を取得します。
これは、私はそれを行う方法:
private void updateItemPermissions(SPItemEventProperties properties)
{
DisableEventFiring();
SPListItem listItem = properties.ListItem;
SPSecurity.RunWithElevatedPrivileges(() =>
{
SPSite site = new SPSite(listItem.ParentList.ParentWeb.Site.ID);
SPWeb web = site.OpenWeb(listItem.ParentList.ParentWeb.ID);
SPList list = web.Lists[listItem.ParentList.ID];
SPListItem item = list.Items.GetItemById(properties.ListItem.ID);
item.BreakRoleInheritance(true);
if (item.RoleAssignments.Count > 0)
{
for (var i = item.RoleAssignments.Count - 1; i >= 0; i--)
item.RoleAssignments.Remove(i);
}
var group = item.Web.Site.RootWeb.Groups["Visitors"];
AddPermissions(item, web, SPRoleType.Reader, group);
});
EnableEventFiring();
}
private static void AddPermissions(SPListItem curItem, SPWeb web, SPRoleType roleType, SPPrincipal principal)
{
SPRoleDefinition roleDefinition = web.RoleDefinitions.GetByType(roleType);
SPRoleAssignment roleAssignment = new SPRoleAssignment(principal);
roleAssignment.RoleDefinitionBindings.Add(roleDefinition);
curItem.RoleAssignments.Add(roleAssignment);
curItem.Update();
}
私はこれが助けを願ってい
ます:)
関連する問題
- 1. sharepoint 2007ドキュメントライブラリの制限
- 2. ドキュメントライブラリSharepoint 2007を移動する方法
- 3. SharePoint 2007:プログラムでバイナリファイルをドキュメントライブラリにアップロードする方法
- 4. PowershellでSharepoint機能を有効にする
- 5. Sharepoint Site Template - プロビジョニングの従属機能を有効にする
- 6. Webパーツページをドキュメントライブラリに追加するSharePoint機能を作成する方法は?
- 7. Staple Sharepoint 2007のカスタムサイトテンプレートへの機能
- 8. Sharepoint 2007のドキュメントライブラリのドキュメントのKBを知る方法?
- 9. SharePoint 2010:Webスコープの機能を特定のサイト定義に限定する
- 10. SharePoint 2007 - 特定のSharePointグループのサイトアクションを表示することは可能ですか?
- 11. SharePointのドキュメントライブラリにファイルをコピー
- 12. htmlファイルを生成してsharepoint 2007のドキュメントライブラリにアップロードする方法
- 13. eclipseでJavaプロジェクトのAptana機能を有効にするには?
- 14. SharePointドキュメントライブラリ
- 15. SharePoint 2007のSharePoint Server公開インフラストラクチャ機能がありません
- 16. 機能ファームレベル機能 - sharepoint 2007のために複数回コールされたイベントハンドラ
- 17. SharePoint Designer 2007 - 別のサイトのサイト上のドキュメントライブラリへのリンク?
- 18. 例外ドキュメントライブラリ内の列のCAMLクエリのSharePoint 2007
- 19. Sharepoint 2007での検索を有効にするにはどうすればよいですか?
- 20. SharePoint 2007はFrontPage拡張機能を使用しますか?
- 21. IMAPは有効ですが、機能は未定義ですか?
- 22. phpdocsのjavascriptの機能強化を有効にするには?
- 23. ドキュメントライブラリの外でSharePoint Webページを作成
- 24. ASP.Net 3.5の機能をSharePoint 2007に提供するためのサポート可能なオプションは何ですか?
- 25. Sharepointのドキュメントライブラリのフォルダ
- 26. 実際に使用されているSharePoint機能を特定する
- 27. SharePointドキュメントライブラリのデータベースではなくファイルシステムにドキュメントを格納する
- 28. NetBeans:JTabedPaneの特定のタブを有効/無効にする方法
- 29. SharePoint機能を更新するには?
- 30. 特定のブラウザに固有のJavaScriptオブジェクト/機能のリスト?