C# 将字段(列值)添加到上传的文件(文档)不起作用
本文关键字:不起作用 文件 文档 添加 字段 列值 | 更新日期: 2023-09-27 18:33:32
请帮忙,
我正在尝试将字段添加到"刚刚上传"的文件中。该文件将上载到 SPFolder 对象。我想自动添加库或文件夹中的所有字段,其中文件将上载到文件。
1st:我从库中获取所有字段(SPList(从事件"项目已添加"属性:
SPList currentList = properties.List;
2nd:我从当前列表中获得了所有字段的字段集合:
SPFieldCollection currentListFieldItems = currentList.Fields;
3rd:现在我想将每个字段添加到当前项目(这是刚刚上传的文件(:
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();
它不起作用,因为它总是说,所有字段都已经存在!你能帮帮我吗,我做错了什么?
斯蒂芬
不能向 SPListItem 添加字段。列表项已包含将文件上载到的列表中存在的所有字段。相反,如果要设置字段的值,则可以使用字段的内部名称来执行此操作:
currentItem["InternalNameOfField"] = "I am the new value";
更多信息和示例可以在 MSDN 上找到