使用旧项目的默认值将新列添加到共享点列表

Adding new column to sharepoint list with default value for old items

我在共享点列表中添加了一个新的布尔列。虽然我已经为该列设置了默认值,但是现有项目对新列没有价值

if (!FieldUtilities.FieldExists(calculationList, M56CalculationFields.INN_M56_IsNewItem))
{
    calculationList.Fields.Add(M56CalculationFields.INN_M56_IsNewItem, SPFieldType.Boolean, false);
    var isNewItem = (SPFieldBoolean)calculationList.Fields[M56CalculationFields.INN_M56_IsNewItem];
    isNewItem.Group = "MMC";
    isNewItem.Title = "Is NewItem";
    isNewItem.Description = "Is New Item";
    isNewItem.ShowInEditForm = false;
    isNewItem.DefaultValue = "0";
    isNewItem.Update();
    calculationList.Update();

}

如何为现有项目添加默认值?

您需要做的是遍历列表中的项目(查找具有空值的项目,如果这是您的意图)并将项目中的每个字段设置为默认值。它看起来像这样:

var query = new SPQuery();
query.Query = @"<Where><IsNull><FieldRef Name='MyField' /></IsNull></Where>

var items = calculationList.GetItems(query);
foreach(SPListItem item in items)
{
   item["MyField"] = "Default Value";
}

您需要为每个字段执行此操作。希望对您有所帮助!