C#将FIELDS(列值)添加到上传的文件(文档)不起作用

时间:2013-10-01 13:48:15

标签: c# sharepoint

请帮忙,

我正在尝试将FIELDS添加到“刚刚上传的”文件中。 文件上传到SPFolder对象。 我想自动添加库中的所有字段或文件夹 文件上传到文件。

第一:我从图书馆获得所有字段(SPList) 来自Event“ItemAdded”属性:

SPList currentList = properties.List;

第二:我从currentList获得了所有字段的FIELD COLLECTION:

SPFieldCollection currentListFieldItems = currentList.Fields;

第三:现在我想将每个FIELD添加到currentItem(这是正确的 上传文件):

for (int i = 0; i < AnzahlFields; i++)
{

                   SPField NeuesFeld = currentListFieldItems[i];
                   String FeldInternalName = currentListFieldItems[i].InternalName;
                   String FeldName = currentListFieldItems[i].Title;
                   NeuesFeld.Type = currentListFieldItems[i].Type;
                   NeuesFeld.Required = currentListFieldItems[i].Required;
                   NeuesFeld.ShowInEditForm = true;
                   NeuesFeld.ShowInDisplayForm = true;
                   NeuesFeld.ShowInListSettings = true;
                   NeuesFeld.ShowInNewForm = true;
                   NeuesFeld.ShowInViewForms = true;


                   if (currentItem.Fields.ContainsField(FeldInternalName))
                   {
                   // The Field already exists
                   }
                   else
                   {
                   // The Field is not existing, will be added
                      currentItem.Fields.Add(NeuesFeld);
                   }

                   } 

currentitem.update();

它不起作用,因为它总是说,所有菲尔兹已经存在! 你能帮帮我吗,我错了什么?

斯特芬

1 个答案:

答案 0 :(得分:1)

您无法向SPListItem添加字段。 ListItem已经包含您上传文件的列表中存在的所有字段。 相反,如果要设置字段的值,可以使用字段的内部名称来执行此操作:

currentItem["InternalNameOfField"] = "I am the new value";

更多信息和示例可在MSDN

上找到