6

CustomContentTypeを含むことができるカスタムリストがあります。これは私が新しいアイテムを作成する方法です:

//Create root folder
SPListItem rootItem = navigation.Items.Add();
SPContentType folderType = navigation.ContentTypes["ListLevel"];
rootItem[SPBuiltInFieldId.Title] = "root";
rootItem["ContentTypeId"] = folderType.Id;
rootItem.Update();

問題は、この後リストを見ると、次のことがわかります。

ここに画像の説明を入力してください

Webブラウザーを介してリストに移動し、コンテンツタイプを手動で作成すると、すべて問題ありません。(これは、タイトルがIDではなく「ルート」であることを意味します)。

4

3 に答える 3

5

答えてくれてありがとう!

解決策は両方の答えの混合でした。さらに、リストをリロードする必要があります。

            //Create root folder
            SPListItem rootItem = navigation.Items.Add();
            SPContentType contentType = navigation.ContentTypes["ListLevel"];

            rootItem["ContentTypeId"] = contentType.Id;
            rootItem["Title"] = "root";
            rootItem.Update();
            navigation.Update();

            rootItem = navigation.GetItemById(rootItem.ID);
            rootItem["Name"] = "root";
            rootItem.Update();
于 2011-11-11T15:52:51.940 に答える
1

「名前」フィールドはファイル名に対応します。列見出しに表示されているものにもかかわらず、1125_.000はリスト項目のファイル名であり、指定しない場合は自動的に生成されます。

rootItem["Name"] = "myname";

「名前」は組み込みフィールドです。

于 2011-11-11T15:15:28.310 に答える
0

最初にコンテンツタイプIDを設定してから、rootItem.update()を実行してください。その後、フィールドコンテンツを設定します。

//Create root folder 
SPListItem rootItem = navigation.Items.Add(); 
SPContentType folderType = navigation.ContentTypes["ListLevel"]; 
rootItem["ContentTypeId"] = folderType.Id; 
rootItem.Update(); 
rootItem[SPBuiltInFieldId.Title] = "root"; 
rootItem.Update(); 
于 2011-11-11T15:16:10.817 に答える