Pranav Bilurkar
Pranav Bilurkar

Reputation: 965

Retrieve Fields/Column Names of a Sharepoint List using Javascript

<script type="text/javascript">
  function retrieveFieldsOfListView(){

var clientContext = new SP.ClientContext.get_current();
var web = clientContext.get_web();
var list = web.get_lists().getByTitle('pranav_list');
var view = list.get_views().getByTitle('Main');
this.listFields = view.get_viewFields();
clientContext.load(this.listFields);
clientContext.executeQueryAsync(Function.createDelegate(this, 
    this.onListFieldsQuerySucceeded9), Function.createDelegate(this, 
    this.onListFieldsQueryFailed));
}
function onListFieldsQuerySucceeded9() {
var fieldsinfo='';
    var fieldEnumerator = listFields.getEnumerator();
    while (fieldEnumerator.moveNext()) {
        var oField = fieldEnumerator.get_current();
        var fType = oField.get_fieldTypeKind();
        fieldsinfo +='\n '+oField.get_title();
    }
    alert(fieldsinfo);
    }
</script>

I want to show the fields of the view using javascript.

Note: My list name is "pranav_list" and view is "Main".

Help..!

Upvotes: 0

Views: 8591

Answers (1)

Vadim Gremyachev
Vadim Gremyachev

Reputation: 59358

SP.View.viewFields property returns field names but not a Field client object collection.

The following example demonstrates how to print field names from a View:

function retrieveFieldsOfListView(listTitle,viewName){

   var context = new SP.ClientContext.get_current();
   var web = context.get_web();
   var list = web.get_lists().getByTitle(listTitle);
   var view = list.get_views().getByTitle(viewName);
   var viewFields = view.get_viewFields();
   context.load(viewFields);
   context.executeQueryAsync(printFieldNames,onError);


   function printFieldNames() {
      var e = viewFields.getEnumerator();
      while (e.moveNext()) {
         var fieldName = e.get_current();
         console.log(fieldName);
      }
   }

   function onError(sender,args)
   {
      console.log(args.get_message());
   }

}

Upvotes: 1

Related Questions