2009-07-23 16 views
0

SharePointとの開発を開始すると、最初はすべてのインとアウトを完全には理解できませんでした。私は(ドキュメントライブラリ用の)リスト定義を作成し、それにさまざまなカスタムアクションを関連付けました。リストの定義からドキュメントライブラリ「タイプ」を作成した後に変更する

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

そして、リストに対してCustomActionsを登録するには:残念ながら、私はリストの定義自体に、次を使用もちろん

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

、これは、カスタムアクションは、すべてのドキュメントライブラリの表示されていることを意味しフィーチャーが活性化され、これは望ましくない挙動である。また、生産上の上記のリスト定義から作成されたこれらのドキュメントライブラリがたくさんあります。

この問題を解決する最善の方法は何ですか?私の前提は、すでに存在するリストの "Type"属性を何らかの形で変更する必要があるということですが、それをどうやって行うのか分かりません。それはおそらくいくつかの直接SQL操作を介して行うことができますか?それとも良い方法がありますか?

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

答えて

-4

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

解決するので手順:

1)変更するには、リストの定義type属性の例11000のためのユニークな値(予定)

2)は

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

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

+2

悪い考え。今度はあなたを助けたかもしれませんが、将来は燃えてしまうかもしれません。 – vitule

2

SharePointデータベースを変更するのは、Microsoftによってcompletely unsupportedです。 でこれをしないでください!

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

関連する問題