magritton
6/4/2016 - 1:49 AM

This chunk of code in JavaScript gets all of the view in a SharePoint site and puts them in a drop down on a web page. When a user selects t

This chunk of code in JavaScript gets all of the view in a SharePoint site and puts them in a drop down on a web page. When a user selects the view on the drop down the browser navigates to that view.

<script language="ecmascript" type="text/ecmascript">
if(typeof jQuery=='undefined'){
 var jQPath = '/_layouts/1033/custom/jquery.min.js'
 document.write('<script src="',jQPath,'" type="text/javascript"><\/script>');
}
        var web = null;
        var listCollection =null;
        var list = null;
        var viewCollection =null;

       function getViews() {
            var clientContext = new SP.ClientContext.get_current();
            if (clientContext != undefined && clientContext != null) {
                this.web = clientContext.get_web();
                this.listCollection = web.get_lists();
                this.list = listCollection.getByTitle("Rem Reduction Initiative Catalog");
                this.viewCollection = list.get_views();
                clientContext.load(this.viewCollection);
                clientContext.executeQueryAsync(Function.createDelegate(this,this.onQuerySucceeded), Function.createDelegate(this,this.onQueryFailed));
            }
        }

       function onQuerySucceeded() {
            var viewName ='Views: \n';
            var viewsEnumerator =this.viewCollection.getEnumerator();
            while (viewsEnumerator.moveNext()) {
                var view = viewsEnumerator.get_current();
                //viewName += view.get_title() + '\n';
				var viewTitle = view.get_title();
				if(viewTitle != ''){
				$('#lstViews').append($('<option>', { 
					value: 'https://xxxxx/' + view.get_serverRelativeUrl(),
					text : view.get_title(),
					onClick: naviTo()
				}));
				}
            }
			//$("#lstViews" ).change(naviTo());
            //alert(viewName);
        }

       function onQueryFailed(sender, args) {
            alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
        }
		
		function naviTo()
		{
			var strLink = $('#lstViews').val();
			//console.log(strLink);
			if(strLink != 'SelectView')
				window.location.href = strLink;
		}
</script>
<select id="lstViews" onClick='naviTo()'>
<option value='SelectView'>Select a View</option>
</select>