JQUERY BASICS – Part 1

jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript.

jquery-logo

In jQuery all the codes starts with “jquery” it’s kind of a door, but when we write some long functionality we can see lot of jquery terms in the code. We don’t really want to repeat it everywhere, instead of “jquery” we can use “$” symbol.


jquery == $

Ex, below are two methods that return the same o/p. In this example we write hello world in the browser console (F12 shortcut key to open browser console window) after the page load.


jQuery(function () { console.log('hello world'); });

OR

$(function () { console.log('hello world'); });

Selectors

We can use CSS3 Selectors for selecting particular tag or set of tags from the page.

Ex,


<html> <head>
<style> p { background-color: #ffc022; } </style>

 </head> <body>
<div id="container">
<h1 class="Info">Introduction</h1>
<a href="/newpage">move to the new page</a></div>
</body> </html>

In the above HTML code we call div using id, in this method id should be unique,

$(‘#container’)

Values for class be repeated and have multiple space-separated values

$(‘.Info’)

Adding and Removing CSS class

After selecting using selector we can add or remove CSS class using below methods

$( "p" ).addClass( "newClass onemoreClass" )

$( "p" ).removeClass( "newClass onemoreClass " )

Events

In the jQuery we can call events in varies ways, in below method we add a function within click event. We have lot of events available in jQuery.

$( "#butSave" ).click(function() {

alert( "Handler for .click() called." );

});

Another method, here we are attaching the event into a button.

$( "#btnSave" ).on( "click", function() {
alert( "Handler for click called using event attach method " );

});

Below code will remove the event attachment from button.

$( "#btnSave" ).off( "click", function() {

alert( "Handler for click is removed" );

});

Below code will fire only once, there is some other event attaching methods also available in jQuery

$( "#btnSave" ).one( "click", function() {

alert( "Handler for click called using event attach method " );

});

Selecting right version of jQuery

There are two major release available in jQuery, one is 1.x and another is 2.x. Select 1.x version if you want to support your application in IE 8 and the below version browsers,else select 2.x.

Retrieve List data in SharePoint Online (office 365) using JSOM

Create new project using App for SharePoint template under Apps in Visual Studio.

step1

In the new project wizard enter your SharePoint site URL and select SharePoint Hosted and click Finish.

step1a

After project created open solution explorer and select App.js file for edit

step2

var context;
var hostweburl;
var appweburl;
var appContextSite;
var list;
var listItems;
var web;

$(document).ready(function () {
 //SP.SOD.executeFunc('sp.js', 'SP.ClientContext', getUrl);
 getUrl();
});

function getUrl() {
 hostweburl = getQueryStringParameter("SPHostUrl");
 appweburl = getQueryStringParameter("SPAppWebUrl");
 hostweburl = decodeURIComponent(hostweburl);
 appweburl = decodeURIComponent(appweburl);
 var scriptbase = hostweburl + "/_layouts/15/";
 $.getScript(scriptbase + "SP.Runtime.js",
 function () {
 $.getScript(scriptbase + "SP.js",
 function () { $.getScript(scriptbase + "SP.RequestExecutor.js", execOperation); }
 );
 }
 );
 event.preventDefault();
}

function execOperation() {
 context = new SP.ClientContext(appweburl);
 var factory =
 new SP.ProxyWebRequestExecutorFactory(
 appweburl
 );
 context.set_webRequestExecutorFactory(factory);
 appContextSite = new SP.AppContextSite(context, hostweburl);
 web = appContextSite.get_web();
 context.load(web);
 var camlQuery = new SP.CamlQuery();
 camlQuery.set_viewXml("");
 list = web.get_lists().getByTitle("Documents");
 listItems= list.getItems(camlQuery);
 context.load(list);
 context.load(listItems);
 context.executeQueryAsync(onSuccess, onFail);
}
function onSuccess() {
 $("#message").empty();
 var listInfo = '';
 var listEnumerator = listItems.getEnumerator();

 listInfo += "
<table>
<tr>
<th>Id</th>
<th>Title</th>
</tr>

";

 while (listEnumerator.moveNext()) {
 var listItem = listEnumerator.get_current();
 listInfo += '
<tr>
<td>' + listItem.get_item('ID') + '</td>

'
 + '
<td>' + listItem.get_item('FileLeafRef') + '</td>

'
 + '</tr>

\n';
 }

 listInfo += '</table>

';

 $("#message").html(listInfo);
}

// This function is executed if the above call fails
function onFail(sender, args) {
 alert(args.get_message());
}
function getQueryStringParameter(paramToRetrieve) {
 var params =
 document.URL.split("?")[1].split("&");
 for (var i = 0; i < params.length; i = i + 1) {
 var singleParam = params[i].split("=");
 if (singleParam[0] == paramToRetrieve)
 return singleParam[1];
 }
}

Code flow

Step 1: getUrl() function called when page get ready

Step 2: getUrl() function is collect host and app web URLs from query strings and adds some JavaScript files for reference and call execOperation() function

Step 3: execOperation() function is create app sire context and request Documents list data as asynchronous call

Step 4: onSuccess() event will receive list data, data written as html table and table added into div control

Document library in SharePoint online
Document library in SharePoint online
App view
App view

Read More »

Programmatically Add Excel Word Access Content Types SharePoint 2010

Create new project using visual studio “Empty SharePoint Project” template, and then select sandbox solution, and then add new web part, now we call below function to create new Content Template with particular document and add some site column, then its add one document library.

        private void ContentTypeAdder()
        {
            using (SPSite site = new SPSite(“http://win7&#8221;))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    web.AllowUnsafeUpdates = true;
                    SPContentType contentType = new SPContentType(web.ContentTypes[“Document”], web.ContentTypes, “SPTECHNET Time Sheet”);
                    web.ContentTypes.Add(contentType);
                    contentType.Group = “SPTECHNET Content Types”;
                    contentType.Description = “Demo content type”;
                    contentType.FieldLinks.Add(new SPFieldLink(web.Fields.GetField(“Address”)));
                    contentType.FieldLinks.Add(new SPFieldLink(web.Fields.GetField(“Office”)));
                    contentType.DocumentTemplate = “http://win7/Shared Documents/Test Dummy.docx”;
                    contentType.Update();
                    
                    SPList list = web.Lists[“Shared Documents”];
                    list.ContentTypesEnabled=true;
                    list.ContentTypes.Add(contentType);
                    list.Update();
                    web.AllowUnsafeUpdates = false;
                }
            }
        }

Image