private void EnsureBoolFieldExists(SPList extendedList, string fieldName, bool defaultValue) { if (!extendedList.Fields.ContainsField(fieldName)) { extendedList.Fields.Add(fieldName, SPFieldType.Boolean, false); SPFieldBoolean boolField = extendedList.Fields[fieldName] as SPFieldBoolean; boolField.ShowInEditForm = false; boolField.DefaultValue = defaultValue ? "1" : "0"; boolField.Hidden = false;// true; boolField.Update(); extendedList.Update(); var query = new SPQuery(); query.Query = @"<Where><IsNull><FieldRef Name='" + fieldName + @"' /></IsNull></Where>"; var items = extendedList.GetItems(query); foreach (SPListItem item in items) { item[fieldName] = defaultValue ? "1" : "0"; item.Update(); } } }
/// <summary> /// /// </summary> /// <param name="web"></param> /// <param name="group"></param> /// <param name="dscription"></param> /// <param name="name"></param> /// <param name="displayName"></param> public static void CreateBooleanColumn(this SPWeb web, string group, string description, string name, string displayName) { try { if (!web.Fields.ContainsField(name)) { string fieldName = web.Fields.Add(name, SPFieldType.Boolean, false); SPFieldBoolean field = (SPFieldBoolean)web.Fields.GetField(name); field.Group = group; field.StaticName = name; field.Title = displayName; field.NoCrawl = false; field.Description = description; field.Update(); } } catch (Exception ex) { SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("CORE:HELPERS", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, String.Format("Exception happened in Helpers:CreateBooleanColumn. MESSAGE: {0}. EXCEPTION TRACE: {1} ", ex.Message, ex.StackTrace), ex.StackTrace); } }