2

カスタム サイト定義から作成された SharePoint サイトがあります。サイト定義には次の機能があります。

  1. カスタム コンテンツ タイプ。
  2. schema.xml ファイルがそのコンテンツ タイプを参照するカスタム リスト テンプレート。
  3. 上記のリスト テンプレート機能を参照するリスト インスタンス機能。

サイトのプロビジョニング プロセス中に、上記の順序で C# コードを使用して、これらの各機能 (それぞれが SPWeb レベル) を有効にします。結果のサイトは期待どおりに見え、正常に動作しているように見えますが、サイトの「すべてのサイト コンテンツ」ページにカスタム リストが 2 回表示されるという奇妙なアーティファクトがあります。

私のリストは正常に動作します。そのアイテム レシーバーは正しく、1 回だけ起動します。SharePoint Manager (SPM)では、リストが 2 回表示されることもわかります。ツリーを展開して属性を確認すると、2 つのリスト (リスト内のリスト アイテムも) で同じように表示されます。私は自分自身をだまし、SPM が同じリストを 2 回見ているだけかもしれないと思っています。

それで、ここで何がうまくいかなかったのでしょうか?同じ名前のリストを複数作成するにはどうすればよいですか? このリストを正しく作成するにはどうすればよいですか? また、この動作を示す既存のサイトの奇妙さを適切にクリーンアップするにはどうすればよいでしょうか?


編集: Michael Stum の質問に応えて、サイトのリストをループして ID を取得するために、このコンソール アプリを作成しました。

using (SPSite site = new SPSite("http://myserver/projects/myproject"))
{
    using (SPWeb web = site.OpenWeb())
    {
        var lists = web.Lists;
        foreach (SPList list in lists)
        {
            Console.WriteLine(list.ID + ": " + list.Title);
        }
    }
}

このコードは私のリストを 2 回表示します -- 同じタイトル、同じ ID。


別の編集: このサイトの SharePoint コンテンツ データベースを調べて、次のクエリを実行しました。

SELECT * FROM AllLists where tp_webid = '<my SPWeb guid>'

これにより、上記の C# コードから取得したタイトルと GUID を持つ実際のリストは 1 つしかないことがわかります。サイトを閲覧しているときに、これらの複数のエントリが表示される原因は何ですか?

4

5 に答える 5

3

私はこの問題に何度か遭遇しました。これはバグではありません。おそらく、リスト テンプレートの elements.xml にセマンティック エラーがあります。

リスト定義に複数の既定のビューが含まれている場合、上記の症状が発生します。リスト テンプレートの elements.xml ファイルを調べて、その中に複数の View-Element が含まれていないことを確認してください。

よろしくラモン

于 2011-11-07T08:55:56.680 に答える
1

今日、私はこの問題に遭遇し、上記の回答を読んだ後、簡単な解決策を思いつきました。新しいデフォルトビューを作成するだけで、ドキュメントライブラリが再び正常に表示されます。

敬具、

Thijmen Groenewegen

Ps

ライブラリをある場所から別の場所に移行することで、同じ2つのライブラリを「作成」しました。古い場所では、図書館は一度しか展示されていませんでした。そのライブラリのデフォルトビューを見ると、2つのビューがデフォルトとしてチェックされています。

于 2012-04-11T09:33:50.057 に答える
1

Microsoft に電話することをお勧めします。これはバグのようです。

PSリストを作成する実際のソリューションを見ないと、何が起こっているのか判断できません。機能が2回アクティブ化された可能性があります...

于 2009-06-16T19:50:51.783 に答える
1

Groenewegenはその場にいます。

サブサイトで Export-SPWeb を実行し、次に Import-SPWeb を実行してそれを新しいサイト コレクションに移動した後、サイトに 2 つのお知らせリストができました。

それを修正するために、リストの新しいデフォルト ビュー All List Items を作成し、2 つの All Items ビューのいずれかを選択して削除すると、問題は修正されました。

[すべてのサイト コンテンツの表示] ページでお知らせリストが 2 回表示され、[すべてのアイテム] ページを表示するとデータが 2 回表示されていました。

また、新しい既定のビューを作成する前に実行する必要がある中間の手順として、リストまたはライブラリを開いて URL に "?contents=1" を追加し、Web パーツのメンテナンス ページを開いていずれかを "閉じる" ことができるようにします。重複。複数の Web パーツが存在する場合、Web パーツ リボンはお知らせページに表示されず、ビュー ドロップダウンにアクセスして新しいビューを作成するにはリボンが必要なため、これを行う必要があります。

于 2013-03-15T14:28:26.270 に答える
0

あなたは試しましたか:

list.RootFolder.Name

(これは「内部」名 - URL の一部を示します)

list.Titleは表示名を示します (2 回以上表示される場合があります)。

これは、複数のリストを取得する理由の説明でもあります。同じ表示名で別の「内部」名を追加した可能性がありますか?

于 2009-06-16T19:12:53.850 に答える