0

我有一个团队网站,如果我创建了一个包含文档的文档库,我正在尝试将文档库中的一列设置为空。

但列不会变空?

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
    SPWeb web = (SPWeb)properties.Feature.Parent;

    SPList list = web.Lists.TryGetList("Document Library");
    if (list != null)
    {
        SPListItemCollection listItemCollection = list.GetItems();
        foreach (SPListItem item in listItemCollection)
        {
            var columnToUpdate ="MyField";
            string internalName = item.Fields[columnToUpdate].InternalName;

            item[internalName] = "";
            item.Update();
        }
    }
}
4

1 回答 1

0

我想你应该找到另一种方法来清空你的字段而不是在 foreach 循环中,因为 foreach 是为了迭代一个容器,确保每个项目都被访问一次,而不改变容器,以避免讨厌的副作用(即foreach 被读取-仅)。也许尝试使用 for 循环进行类似的步骤会有所帮助,例如以下代码:

    SPListItemCollection listItemCollection = list.GetItems();

    for (int i = 0; i < listItemCollection.Count; i++)
    {
        var columnToUpdate = "MyField";
        var item = listItemCollection[i];
        string internalName = item.Fields[columnToUpdate].InternalName;

        item[internalName] = "";
        item.Update();
    }

希望它会有所帮助。如果您在这里找不到解决方案,我还建议您在https://sharepoint.stackexchange.com/上提出这个问题。

于 2015-06-16T11:40:35.010 回答