Programmatically Add SharePoint Columns and Formatting theses Column's properties
Hello everyone, i'm new here! =)
I need some help to create Sharepoint columns and setting up the column's format or properties programmatically.
I
am able to create columns programmatically already, but am not able to
set where i want radio buttons, dropdownlist for eg. Choice Type column.
Any one can give me a suggestion or example?
This is what i used for creating columns:
private void btnCreateColumn_Click(object sender, EventArgs e)
{
SPSite mainsite = new SPSite("http://moss:3602");
SPWeb web = mainsite.AllWebs[0];
string ListSelected;
ListSelected = cmbLstNames.SelectedItem.ToString();
SPList taskList = web.Lists[ListSelected];
SPFieldCollection Fields = taskList.Fields;
SPFieldType UserChosenFieldType = SPFieldType.Text;
string FieldType = "";
FieldType = cmbListType.SelectedItem.ToString();
try
{
#region SPField Types Definition
/*UserChosenFieldType is optional instead you can use any one of the
case UserChosenFieldType such as "AllDayEven" to create only one type of
Site Template without Option*/
switch (FieldType)
{
case "AllDayEvent": UserChosenFieldType = SPFieldType.AllDayEvent; break;
case "Attachments": UserChosenFieldType = SPFieldType.Attachments; break;
case "Boolean": UserChosenFieldType = SPFieldType.Boolean; break;
case "Calculated": UserChosenFieldType = SPFieldType.Calculated; break;
case "Choice": UserChosenFieldType = SPFieldType.Choice; break;
case "Computed": UserChosenFieldType = SPFieldType.Computed; break;
case "ContentTypeId": UserChosenFieldType = SPFieldType.ContentTypeId; break;
case "Counter": UserChosenFieldType = SPFieldType.Counter; break;
case "CrossProjectLink": UserChosenFieldType = SPFieldType.CrossProjectLink; break;
case "Currency": UserChosenFieldType = SPFieldType.Currency; break;
case "DateTime": UserChosenFieldType = SPFieldType.DateTime; break;
case "Error": UserChosenFieldType = SPFieldType.Error; break;
case "File": UserChosenFieldType = SPFieldType.File; break;
case "GridChoice": UserChosenFieldType = SPFieldType.GridChoice; break;
case "Guid": UserChosenFieldType = SPFieldType.Guid; break;
case "Integer": UserChosenFieldType = SPFieldType.Integer; break;
case "Invalid": UserChosenFieldType = SPFieldType.Invalid; break;
case "Lookup": UserChosenFieldType = SPFieldType.Lookup; break;
case "MaxItems": UserChosenFieldType = SPFieldType.MaxItems; break;
case "ModStat": UserChosenFieldType = SPFieldType.ModStat; break;
case "MultiChoice": UserChosenFieldType = SPFieldType.MultiChoice; break;
case "Note": UserChosenFieldType = SPFieldType.Note; break;
case "Number": UserChosenFieldType = SPFieldType.Number; break;
case "PageSeparator": UserChosenFieldType = SPFieldType.PageSeparator; break;
case "Recurrence": UserChosenFieldType = SPFieldType.Recurrence; break;
case "Text": UserChosenFieldType = SPFieldType.Text; break;
case "ThreadIndex": UserChosenFieldType = SPFieldType.ThreadIndex; break;
case "Threading": UserChosenFieldType = SPFieldType.Threading; break;
case "URL": UserChosenFieldType = SPFieldType.URL; break;
case "User": UserChosenFieldType = SPFieldType.User; break;
case "WorkflowEventType": UserChosenFieldType = SPFieldType.WorkflowEventType; break;
case "WorkflowStatus": UserChosenFieldType = SPFieldType.WorkflowStatus; break;
}
#endregion
if (rdbtnYes.Checked)
Fields.Add(txtColumnName.Text, UserChosenFieldType, true);
else
Fields.Add(txtColumnName.Text, UserChosenFieldType, false);
MessageBox.Show("Custom field created dynamically");
}
catch (Exception ex)
{
MessageBox.Show("Error encountered attempting to add a new field" + Environment.NewLine + ex.Message);
}
}
private void loadColumnTypes()
{
cmbListType.Items.Add("AllDayEvent");
cmbListType.Items.Add("Attachments");
cmbListType.Items.Add("Boolean");
cmbListType.Items.Add("Calculated");
cmbListType.Items.Add("Choice");
}
#endregion