web-dev-qa-db-ja.com

SharePoint:カスタムリストインスタンスにプログラムでアイテムを追加するにはどうすればよいですか

私は本当に小さなコードスニペット、またはこのテーマに関する優れたチュートリアルを探しています。

カスタムアイテムにリストアイテムを何らかの方法で追加するために使用するC#コンソールアプリがあります。カスタムコンテンツタイプも作成しました。したがって、このコンテンツタイプからC#クラスを作成する必要があるかどうかもわかりません。おそらくない。

前もって感謝します

24
JL.

これらの両方のブログ投稿は、問題の解決に役立つと思います。

http://blog.the-dargans.co.uk/2007/04/programmatically-adding-items-to.htmlhttp://asadewa.wordpress.com/2007/ 11/19/adding-a-custom-content-type-specific-item-on-a-sharepoint-list /

短いウォークスルー:

  1. アイテムを追加するリストのインスタンスを取得します。
  2. リストに新しいアイテムを追加します。

    SPListItem newItem = list.AddItem();
    
  3. 新しいアイテムをコンテンツタイプにバインドするには、新しいアイテムのコンテンツタイプIDを設定する必要があります。

    newItem["ContentTypeId"] = <Id of the content type>;
    
  4. コンテンツタイプ内で指定されたフィールドを設定します。

  5. 変更をコミットします。

    newItem.Update();
    
32
Flo

シンプルにするには、手順に従う必要があります。

  1. Microsoft.SharePoint.dllをアプリケーションに参照する必要があります。
  2. リスト名がTestであり、フィールド「タイトル」が1つだけあると仮定します。ここにコードがあります。

            using (SPSite oSite=new SPSite("http://mysharepoint"))
        {
            using (SPWeb oWeb=oSite.RootWeb)
            {
                SPList oList = oWeb.Lists["Test"];
                SPListItem oSPListItem = oList.Items.Add();
                oSPListItem["Title"] = "Hello SharePoint";
                oSPListItem.Update();
            }
    
        }
    
  3. このアプリケーションは、SharePointがインストールされている同じサーバーで実行する必要があることに注意してください。

  4. カスタムコンテンツタイプのカスタムクラスを作成する必要はありません

18
Kusek

次のようなことを実行して、カスタムSharePointリストにアイテムを作成できます。

using (SPSite site = new SPSite("http://sharepoint"))
{
    using (SPWeb web = site.RootWeb)
    {
        SPList list = web.Lists["My List"];
        SPListItem listItem = list.AddItem();
        listItem["Title"] = "The Title";
        listItem["CustomColumn"] = "I am custom";
        listItem.Update();
     }
}

List.AddItem()を使用すると、列挙されるリストアイテムを保存する必要があります。

11
Andrew

これはMicrosoftサイトでの方法であり、SPSiteとSPWebを微調整するだけです。これらは環境によって異なる場合があり、これらをハードコーディングする必要がないためです。

using (SPSite oSiteCollection = new SPSite(SPContext.Current.Site.Url))
{
    using (SPWeb oWeb = oSiteCollection.OpenWeb(SPContext.Current.Web))
    {
        SPList oList = oWeb.Lists["Announcements"];
        // You may also use 
        // SPList oList = oWeb.GetList("/Lists/Announcements");
        // to avoid querying all of the sites' lists
        SPListItem oListItem = oList.Items.Add();
        oListItem["Title"] = "My Item";
        oListItem["Created"] = new DateTime(2004, 1, 23);
        oListItem["Modified"] = new DateTime(2005, 10, 1);
        oListItem["Author"] = 3;
        oListItem["Editor"] = 3;
        oListItem.Update();
    }
}

ソース:SPListItemClass(Microsoft.SharePoint)。 (2012)。 http://msdn.Microsoft.com/en-us/library/Microsoft.sharepoint.splistitem.aspx から2012年2月22日取得。

5
vapcguy