Add Field to List in SharePoint 2010 Programmatically Using VS 2010 Via COM

Introduction

Today, in this article let's play around with one of the interesting and most useful concepts in SharePoint 2010.

Question: What is adding field to list via COM?

In simple terms "To enables to create new field for list using client object model".

Step 1: Open Visual Studio 2010 and create an "ASP.NET Web Forms Application", as in:

 

open-asp.net-web-application.jpg
 

Now two references need to be added to the application, they are:

  • Microsoft.SharePoint.Client

  • Microsoft.SharePoint.Client.Runtime

 Step 2: The complete code of webform1.aspx looks like this:

 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AddFieldtoListCOMApp._Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <center>

        <div>

            <table style="text-align: center">

                <tr>

                    <td colspan="2">

                        <asp:Label ID="Label1" runat="server" Text="Client Object Model List Field Creation - SharePoint 2010 Programatically"

                            Font-Bold="true" Font-Size="Large" Font-Names="Verdana" ForeColor="Maroon"></asp:Label>

                    </td>

                </tr>

                <tr>

                    <td>

                        <asp:Label ID="Label4" runat="server" Text="Please Enter List Name" Font-Size="Large"

                            Font-Names="Verdana" Font-Italic="true"></asp:Label>

                    </td>

                    <td>

                        <asp:TextBox ID="TextBox4" runat="server" Width="117px"></asp:TextBox>

                    </td>

                </tr>

                <tr>

                    <td>

                        <asp:Label ID="Label2" runat="server" Text="Please Enter Field Name" Font-Size="Large"

                            Font-Names="Verdana" Font-Italic="true"></asp:Label>

                    </td>

                    <td>

                        <asp:TextBox ID="TextBox1" runat="server" Width="117px"></asp:TextBox>

                    </td>

                </tr>

                <tr>

                    <td>

                        <asp:Label ID="Label3" runat="server" Text="Please Enter Field Type" Font-Size="Large"

                            Font-Names="Verdana" Font-Italic="true"></asp:Label>

                    </td>

                    <td>

                        <asp:TextBox ID="TextBox2" runat="server" Width="117px"></asp:TextBox>

                    </td>

                </tr>

                <tr>

                    <td colspan="2">

                        <br />

                        <asp:Button ID="Button1" runat="server" Text="Create Field" Font-Names="Verdana"

                            Width="282px" BackColor="Orange" Font-Bold="True" OnClick="Button1_Click" />

                    </td>

                </tr>

                <tr>

                    <td colspan="2">

                        <br />

                        <asp:Label ID="Label5" runat="server" Font-Bold="true" Font-Names="Verdana"></asp:Label>

                    </td>

                </tr>

            </table>

        </div>

    </center>

    </form>

</body>

</html>

 

Step 3: The complete code of webform1.aspx.cs looks like this:

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using Microsoft.SharePoint.Client;

namespace AddFieldtoListCOMApp

{

    public partial class _Default : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

            TextBox4.Focus();

        }

        protected void Button1_Click(object sender, EventArgs e)

        {

            if (string.IsNullOrEmpty(TextBox1.Text) || string.IsNullOrEmpty(TextBox2.Text) || string.IsNullOrEmpty(TextBox4.Text))

            {

                Label5.Text = "Please Enter Some Values";

                Label5.ForeColor = System.Drawing.Color.Red;

            }

            else

            {

                ClientContext objContext = new ClientContext("http://win-kv3bo1rqqf7:25339/");

                Web objWeb = objContext.Web;

                List objList = objWeb.Lists.GetByTitle(TextBox4.Text);

                Field objField = objList.Fields.AddFieldAsXml("<Field DisplayName='" + TextBox1.Text + "' Type='" + TextBox2.Text + "' />", true, AddFieldOptions.DefaultValue);

                objField.Update(); objContext.ExecuteQuery();

                Label5.Text = "Field Created Successfully";

                Label5.ForeColor = System.Drawing.Color.Green;

                TextBox4.Text = string.Empty;

                TextBox1.Text = string.Empty;

                TextBox2.Text = string.Empty;

            }

        }

    }

}

 

Step 4: The output of the application looks like this:

 

client-object-model-list-sharepoint2010.jpg
 

 

 

Step 5: Data entering output of the application looks like this:

 

field-client-object-model-list-sharepoint2010.jpg
 

 

Step 6: The output of the field created SharePoint application looks like this:

output-field-created-sharepoint-application.jpg

I hope this article is useful for you.


MVC Corporation
MVC Corporation is consulting and IT services based company.