0

SharePointに対して開発を始めたとき、最初はすべての詳細を完全には理解していませんでした。(ドキュメントライブラリ用の)リスト定義を作成し、それにさまざまなカスタムアクションを関連付けました。残念ながら、リスト定義自体には次のものを使用しました。

<ListTemplate...
...
Type="101"
...

そして、リストに対してCustomActionsを登録するには:

<CustomAction...
...
RegistrationType="List"
RegistrationId="101"
...

もちろん、これは、機能がアクティブ化されているすべてのドキュメントライブラリにカスタムアクションが表示されることを意味しますが、これは望ましくない動作です。また、これらのドキュメントライブラリは、本番環境で上記のリスト定義から作成されたものがたくさんあります。

この問題を解決するための最良の方法は何ですか?私の想定では、既存のリストの「タイプ」属性を何らかの方法で変更する必要がありますが、その方法がわかりません。おそらく、SQLを直接操作することで実行できますか?それとももっと良い方法はありますか?

注:AllListsテーブルに列tp_ServerTemplateがあることがわかりますが、これは正しい変更ですか?

4

2 に答える 2

2

SharePointデータベースの変更は、Microsoftでは完全にサポートされていません。本番環境ではこれを行わないでください。

もう1つのオプションは、コンテンツタイプを作成し、カスタムアクションをそれに関連付けることです。既存のドキュメントライブラリを反復処理し、コンテンツタイプを追加して使用できるようにするには、単純なコンソールアプリケーションを作成する必要がある場合があります。カスタムアクションを適用する既存のドキュメントでも、コンテンツタイプを変更する必要があります。

于 2009-07-24T09:49:47.333 に答える
-4

いくつかの簡単な初期テストから、AllListsテーブルを変更することでうまくいくように見えます。

したがって、解決する手順は次のとおりです。

1)リスト定義タイプ属性を一意の値に変更します(例:11000)

2)CustomAction RegistrationId属性を同じになるように変更します(11000)

3)AllListsテーブルのtp_servertemplate列を更新して、関連するすべてのリストの新しいテンプレートタイプ(11000)にします。

于 2009-07-23T09:53:33.103 に答える