// return all rows and (selected) fields of a list--fields are included dynamically private Dictionary<string,Dictionary<string,object>> getListData( ClientContext ctx ) { Log.LogMessage( "Fetching {0}{1}", ctx.Url, ListName ); var list = ctx.Web.Lists.GetByTitle( ListName ); // fetch the fields from this list FieldCollection fields = list.Fields; ctx.Load( fields ); ctx.ExecuteQuery(); // dynamically build a list of fields to get from this list var columns = new List
{ "ID" }; // always include the ID field foreach( var f in fields ) { // Log.LogMessage( "\t\t{0}: {1} of type {2}", f.Title, f.InternalName, f.FieldTypeKind ); if( f.InternalName.StartsWith( "_" ) || f.InternalName.StartsWith( "ows" ) ) continue; // skip these if( f.FieldTypeKind == FieldType.Text ) // get Text fields only... but you can get other types too by uncommenting below // || f.FieldTypeKind == FieldType.Counter // || f.FieldTypeKind == FieldType.User // || f.FieldTypeKind == FieldType.Integer // || f.FieldTypeKind == FieldType.Number // || f.FieldTypeKind == FieldType.DateTime // || f.FieldTypeKind == FieldType.Lookup // || f.FieldTypeKind == FieldType.Computed // || f.FieldTypeKind == FieldType.Boolean ) { columns.Add( f.InternalName ); } } // build the include expression of which fields to fetch List<Expression<Func<ListItemCollection, object>>> allIncludes = new List<Expression<Func<ListItemCollection, object>>>(); foreach( var c in columns ) { // Log.LogMessage( "Fetching column {0}", c ); allIncludes.Add( items => items.Include( item => item[ c ] ) ); } // get all the items in the list with the fields ListItemCollection listItems = list.GetItems( CamlQuery.CreateAllItemsQuery() ); ctx.Load( listItems, allIncludes.ToArray() ); ctx.ExecuteQuery(); var sd = listItems.ToDictionary( k => k["Title"] as string, v => v.FieldValues ); // FieldValues is a Dictionary // show the fields foreach( var i in sd.Keys ) { Log.LogMessage( "\tItem: {0}", i ); foreach( var c in columns ) { Log.LogMessage( "\t\t{0}: {1}", c, sd[ i ][ c ] ); } } return sd; }
You Can also try:
// Get your ClientContext for your site in 'clientContext' SP.List oList = clientContext.Web.Lists.GetByTitle("List Title Here"); SP.FieldCollection fieldColl = oList.Fields; clientContext.Load(fieldColl); clientContext.ExecuteQuery(); foreach (SP.Field fieldTemp in fieldColl) { MessageBox.Show(fieldTemp.InternalName.ToString()); //I used MessageBox to show, but you can do whatever you like with it here. }
Vinay Chavadi's Blog on Application Development in SharePoint 2010/2013/2016 & SharePoint Online
Thursday, October 20, 2016
How to get all the fields in a list in Sharepoint client object model
Subscribe to:
Post Comments (Atom)
-
There are 3 SPJobLockType available: 1. SPJobLockType.None -- if you set it none, the instance will run in all the available s...
-
Overview: We define disaster recovery as the ability to recover from a situation in which a data center that hosts SharePoint Server beco...
No comments:
Post a Comment