Client Side Object Model in SharePoint 2010

SharePoint 2010 offers a useful way to access SharePoint objects from client side. A developer can use .Net managed code, ECMAScript to access SharePoint objects like List, Site, Library etc.

On this blog I will write a code to select data from SharePoint list. I will use .Net managed code to do this.

First of all you need to add references of 2 dlls.

Microsoft.SharePoint.Client.dll and Microsoft.SharePoint.Client.Runtime.dll which are available in hive(14)/ISAPI folder.



Once dlls got referenced in your project, you may start coding.

C# code to bind all Title to dropdown from a list with name "MyList"

private void BindData()
        {
            ClientContext context1 = new ClientContext("siteurl");
            context1.AuthenticationMode = ClientAuthenticationMode.Anonymous;

            List list1 = context1.Web.Lists.GetByTitle("MyList");
            CamlQuery query1 = new CamlQuery();
  
            query1.ViewXml = @"<Query></Query>";

            Microsoft.SharePoint.Client.ListItemCollection listCollection1 = list1.GetItems(query1);
            context1.Load(listCollection1);
            context1.ExecuteQuery();
            DataTable dTable1 = new DataTable();
            dTable1.Columns.Add("Title");
             
            for (int iCntr1 = 0; iCntr1 < listCollection1.Count; iCntr1++)
            {

                dTable1.Rows.Add(dTable1.NewRow());
                if (listCollection1[iCntr1]["Title"] != null)
                {
                    dTable1.Rows[dTable1.Rows.Count - 1]["Title"] = listCollection1[iCntr1]["Title"].ToString();
                }
               
            }          
           
            if (dTable1.Rows.Count > 0)
            {
                dropdownlist1.DataValueField = "Title";
                dropdownlist1.DataTextField = "Title";
                dropdownlist1.DataSource = dTable1;
                dropdownlist1.DataBind();
                dropdownlist1.Items.Insert(0, "All");
            }
        }

You may bind data with any data control, here I have used DropDown control.


Java Script Object Model (JSOM)
ECMAScript is a java script based scripting language which is use in SharePoint to access objects client side.
We can write ECMA Script in an aspx file and access SharePoint objects.

Below script will count the no. of items present in the list.
Create a list with name "MyList" in SharePoint.
Add few items.
Create a webpart page and add content editor webpart on that page.
Put below code in Editor and save the page.
Refresh your page, it will give you alert with number of items available in mentioned list.
<script type="text/javascript">

ExecuteOrDelayUntilScriptLoaded(MainFunction, "SP.js"); 
  
var objContext = null; 
var objWeb = null     
var objList = null;
var objItem = null;

    function MainFunction() {   
        objContext = new SP.ClientContext.get_current();
        objWeb = objContext.get_web();   
        objList = objWeb.get_lists().getByTitle("MyList");
  
        objContext.load(objList);

        objContext.executeQueryAsync(Function.createDelegate(this, this.onSuccess), Function.createDelegate(this, this.onFail));   
    }   

    function onSuccess(sender, args) {
        alert('Item Count: ' + objList.get_itemCount());
    }   

    function onFail(sender, args) {   
        alert('Some error has occured.');   
    }  
 </script>
ExecuteOrDelayUntilScriptLoaded(MainFunction, "SP.js") function takes the name of the function that need to be executed as a main function and will load the SP.js file, which is the core of Client Object Model.

get_web() - Get the current site
getByTitle() - To get the list that is passed as a parameter
So by using ECMAScript no need to write any C# code to fetch list data.

Comments

Popular posts from this blog

CAML Query in SharePoint 2010

Calling REST APi from server side code - C#

All about SharePoint 2010 Content Type Hub

SharePoint Interview Questions and Answers

Calling ASP.Net WebMethod using jQuery AJAX