Question:Creating Fields or Columns in SharePoint List Programmatically using C#(Single Line Test, Multiline Text, Choice, Number, Currency, Date Time, Lookup, Person or Group)
It is very easy to add a column in a SharePoint List from website front-end, we just need to click "List Settings -> Create Column" and enter the title and type of the field, and click "OK" button. That's it, new field is created.
In simple terms "When you create a custom list, a new empty list is created with just two columns - Title and Attachments. The list contains a single default view. Once you create the list, you can add more columns, views, and so on"
We can use SharePoint API to create these fields and associate the corresponding attributes programmatically within an existing List. Provided below is a code snippet in C#.Net.
using (SPWeb web = new SPSite("http://kapplesofts/").OpenWeb())
{
web.AllowUnsafeUpdates = true;
SPList list = web.Lists["KapplesSofts List"];
//Creating List Fields or Columns
//single Line Text Field
string SLTInternalName = list.Fields.Add("Single Line Text", SPFieldType.Text, false);
//'false' means Required field not mandatory
//'true' means Required field mandatory
//Multiline Text Field
string MLTInternalName = list.Fields.Add("Multiline Text", SPFieldType.Note, false);
//Choice Field
string fieldStatusName = list.Fields.Add("Status", SPFieldType.Choice, false);
SPFieldChoice fieldStatus = (SPFieldChoice)list.Fields.GetFieldByInternalName(fieldStatusName);
string[] activityTypes = { "Active", "Closed" };
fieldStatus.Choices.AddRange(activityTypes);
fieldStatus.DefaultValue = "Active";
fieldStatus.Update();
//or Choice Field Dropdown
SPField fieldCategory = new SPField(list.Fields, "Choice", "Category");
list.Fields.Add(fieldCategory);
list.Update();
SPFieldChoice CategoryField = (SPFieldChoice)list.Fields["Category"];
CategoryField.EditFormat = SPChoiceFormatType.Dropdown;
CategoryField.Choices.Add("Non Compliance");
CategoryField.Choices.Add("Observation");
CategoryField.Choices.Add("Suggestion");
CategoryField.Choices.Add("Improvement");
CategoryField.DefaultValue = "Observation";
CategoryField.Update();
//or Choice Field RadioButtons
SPField field = new SPField(list.Fields, "Choice", "Siverity");
list.Fields.Add(field);
list.Update();
SPFieldChoice rdField = (SPFieldChoice)list.Fields["Siverity"];
rdField.EditFormat = SPChoiceFormatType.RadioButtons;
rdField.Choices.Add("Major Finding");
rdField.Choices.Add("Minor Finding");
//DefaultValue empty
rdField.Update();
//Number Field
string NumberInternalName = list.Fields.Add("Number", SPFieldType.Number, false);
SPFieldNumber fieldTimeSpent = new SPFieldNumber(list.Fields, NumberInternalName);
fieldTimeSpent.DisplayFormat = SPNumberFormatTypes.NoDecimal;
fieldTimeSpent.Update();
// Currency field
string CurrencyInternalName = list.Fields.Add("Salary", SPFieldType.Currency, false);
SPFieldCurrency currencyTimeSpent = new SPFieldCurrency(list.Fields, CurrencyInternalName);
currencyTimeSpent.Currency = SPCurrencyFieldFormats.India;
currencyTimeSpent.DisplayFormat = SPNumberFormatTypes.TwoDecimals;
currencyTimeSpent.Update();
//Date Time Field
string fieldInternalName = list.Fields.Add("DOB", SPFieldType.DateTime, false);
SPFieldDateTime fieldDateTime = new SPFieldDateTime(list.Fields, fieldInternalName);
fieldDateTime.DisplayFormat = SPDateTimeFieldFormatType.DateOnly;
fieldDateTime.DefaultValue = "[today]";
fieldDateTime.Update();
//Lookup Field
SPField titleField = list.Fields.GetField("Title");
titleField.Title = "Employee Name";
titleField.Update();
SPList lookupList = web.Lists["Sample List"];
list.Fields.AddLookup("Employee FirstName", lookupList.ID, false);
SPFieldLookup lkp = (SPFieldLookup)list.Fields["Employee FirstName"];
lkp.LookupField = list.Fields["Employee Name"].InternalName;
lkp.Update();
//Boolean Field
string BooleanInternalName = list.Fields.Add("Boolean", SPFieldType.Boolean, false);
//Person or Group Field
string fieldUserName = list.Fields.Add("Employee Name", SPFieldType.User, false);
SPFieldUser userField = new SPFieldUser(list.Fields, fieldUserName);
userField.AllowMultipleValues = false;
userField.Required = false;
userField.SelectionMode = SPFieldUserSelectionMode.PeopleOnly;
userField.LookupField = "Title";
userField.Update();
list.Update();
web.AllowUnsafeUpdates = false;
}
Out Put list new form:
List setting:
No comments:
Post a Comment