2016-06-16 11 views
0

共有リストに新しいブール列を追加しました。列の既定値は設定していますが、の既存の項目は新しい列の値がではありません。古い項目のデフォルト値を使用して共有リストに新しい列を追加する

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(); 

} 

既存のアイテムのデフォルト値を追加するにはどうすればよいですか?

+0

既存のアイテムのデフォルト値をワンタイムイベントとして設定しますか? –

+0

はい、古いアイテムをデフォルト値にしたい – Arman

答えて

2

あなたのやりたいことは、あなたのリスト内のアイテムを繰り返し(あなたの意図がnull値のアイテムを探してください)、アイテムの各フィールドをデフォルト値に設定することです。

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"; 
} 

フィールドごとにこれを行う必要があります。私はこれが助けて欲しい!

関連する問題