SharePoint 2010 client object model read survey list
Hello all,
please suggest me how to read
questions and answers in a survey list using
client object model
if possible some code is fine.
Like Cricket
Hi,
below is the code for reading the items from survey list in .Net managed client object modal share point 2010
using (ClientContext context = new ClientContext("siteUrl"))
context.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
Web web = context.Web;
context.Load(web);
List survey = web.Lists.GetByTitle("SurveyListName");
FieldCollection fldColl = survey.Fields;
context.Load(fldColl);
ListItemCollection coll = survey.GetItems(CamlQuery.CreateAllItemsQuery());
context.Load(survey);
context.Load(coll);
context.ExecuteQuery();
//Load the questions and answers in the dictionary object
Dictionary<string, List<string>> questionAnswers = new Dictionary<string, List<string>>();
foreach (Field fld in fldColl)
if (fld.FieldTypeKind == FieldType.Choice && !fld.FromBaseType)
foreach (ListItem item in coll)
if (item.FieldValues.ContainsKey(fld.InternalName))
string value = item.FieldValues[fld.InternalName].ToString();
if (!string.IsNullOrEmpty(value))
if (!questionAnswers.ContainsKey(fld.Title))
List<string> values = new List<string>();
values.Add(value);
questionAnswers.Add(fld.Title, values);
else
List<string> oldValues = questionAnswers[fld.Title];
oldValues.Add(value);
questionAnswers[fld.Title] = oldValues;
Thanks,
Anil
Anil
Similar Messages
-
Create folder in Document Library using Sharepoint 2010 Client Object Model
I would like to check for the existence of a folder in s Sharepoint 2010 Document Library and if the folder is not found, create it. (I would then subsequently programmatically upload documents to that folder -- which I have figured out). Can someone
please help me figure out how to check for the extistence of and then create a folder using the Sharepoint 2010 Client Object Model?You can use this:
public static void CreateFolder_ClientOM(string listName, string folderName)
ClientContext clientContext = new ClientContext("http://basesmc2008");
Web web = clientContext.Web;
List list = clientContext.Web.Lists.GetByTitle(listName);
clientContext.Load(clientContext.Site);
string targetFolderUrl = listName + "/" + folderName;
Folder folder = web.GetFolderByServerRelativeUrl(targetFolderUrl);
clientContext.Load(folder);
bool exists = false;
try
clientContext.ExecuteQuery();
exists = true;
catch (Exception ex)
if (!exists)
ContentTypeCollection listContentTypes = list.ContentTypes;
clientContext.Load(listContentTypes, types => types.Include
(type => type.Id, type => type.Name,
type => type.Parent));
var result = clientContext.LoadQuery(listContentTypes.Where
(c => c.Name == "Folder"));
clientContext.ExecuteQuery();
ContentType folderContentType = result.FirstOrDefault();
ListItemCreationInformation newItemInfo = new ListItemCreationInformation();
newItemInfo.UnderlyingObjectType = FileSystemObjectType.Folder;
newItemInfo.LeafName = folderName;
ListItem newListItem = list.AddItem(newItemInfo);
newListItem["ContentTypeId"] = folderContentType.Id.ToString();
newListItem["Title"] = folderName;
newListItem.Update();
clientContext.Load(list);
clientContext.ExecuteQuery();
Blog | SharePoint Field Notes Dev Tool |
ClassMaster -
Sharepoint 2013 client object model FQL
Hi,
Im using Sharepoint 2013 client object model api and im trying to search on sharepoint by using FQL, but I dont get any results when Im using FQL, but when Im trying similar KQL syntax I get results.
I''ve heard that I need to enable the FQL but I can't find how, In 2010 api its a proeprty in KeywordQuery class.
code:
KeywordQuery keyword = new KeywordQuery(client);
// KQL
keyword.QueryText = "title:mon*";
// FQL
keyword.QueryText = "starts-with(title:string("mon"))";
Thank youTo enable FQL, you have to copy the default result source and modify the Query Transformation string {?{searchTerms} -ContentClass=urn:content-class:SPSPeople}, at one of these
levels -- Search Service Application (SSA), Site Collection, or Site -- and in one of the following ways:
Remove the KQL filter, -ContentClass:urn:content-class:SPSPeople, from the Query Transformation. The resulting Query Transformation string will be: {?{searchTerms}}
Replace the Query Transformation string with an FQL equivalent, such as {?andnot({searchTerms},filter(contentclass:"urn:content-class:SPSPeople*"))}.
Source :http://msdn.microsoft.com/en-us/library/office/jj163973.aspx
Bala -
Sharepoint authentication Client object model for direct links
We have a Sharepoint 2010 site and another website [ASP.Net Web API 2] which uses Client object model to get data from Sharepoint, this is an intranet environment.
The Client object model part of it is working fine, if any user logs in, it works with that user credentials. But when a user tries to access a direct SP link, ex: a link to a document from a document library, it pops up a credentials window.
How to get rid of this pop up window, or how to set the authentication for the entire server when the user logs in to our web api.Hi,
The prompt for credential can be seen as a behavior by designed for the sake of safe and there are no solutions to avoid it at this moment per my knowledge.
Here is a similar thread will provide more information:
http://social.msdn.microsoft.com/Forums/sharepoint/en-US/85b5d22a-88ed-4975-8de9-1d65df293aeb/avoiding-prompting-for-authentication-when-accessing-the-aspx-page-in-layouts-folder-from-my?forum=sharepointdevelopmentprevious
Thanks
Patrick Liang
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
[email protected]
Patrick Liang
TechNet Community Support -
SharePoint 2013 Client Object Model fetch image rendition info
Hi,
Below is the scenario I am trying with SharePoint 2013 managed client object model.
FrontEnd: ASP.Net web application
BackEnd: SharePoint 2013.
I have a publishing image with rendition applied and I am able to fetch the image URL like "/{site}/{lib}/{imagename}?RenditionId={id}".
I am able to download the file "/{site}/{lib}/{imagename}" using File.OpenBinaryDirect()
This is giving the original file without any renditions applied. If I use the same method with URL "/{site}/{lib}/{imagename}?RenditionId={id}", it gives me 400 Bad request error.
I have also tried using file.OpenBinaryStream() method with URL "/{site}/{lib}/{imagename}?RenditionId={id}" whichi still gives the original file without rendition
Please let me know how to fetch the below info using the rendition id?
RenditionVersion;
SourceImageWidth;
SourceImageHeight;
CropStartX;
CropStartY;
CropWidth;
CropHeight;
Alternatively, let me know if I could get the download file with rendition applied without requiring the above attributes.
Note: I am looking for solutions in client side programming (client object model/ web services (REST) . The server object model has classes "ImageRenditionCollection" and "ImageRendition" which can provide the above image info.
Thanks,
SrikanthTo enable FQL, you have to copy the default result source and modify the Query Transformation string {?{searchTerms} -ContentClass=urn:content-class:SPSPeople}, at one of these
levels -- Search Service Application (SSA), Site Collection, or Site -- and in one of the following ways:
Remove the KQL filter, -ContentClass:urn:content-class:SPSPeople, from the Query Transformation. The resulting Query Transformation string will be: {?{searchTerms}}
Replace the Query Transformation string with an FQL equivalent, such as {?andnot({searchTerms},filter(contentclass:"urn:content-class:SPSPeople*"))}.
Source :http://msdn.microsoft.com/en-us/library/office/jj163973.aspx
Bala -
Cannot create list in SharePoint 2010 using Client Object Model
I am trying to utilize SharePoint 2010 Client Object Model to create a List based on a custom template. Here's my code:
public void MakeList(string title, string listTemplateGUID, int localeIdentifier)
string message;
string listUrl;
List newList;
Guid template;
ListCreationInformation listInfo;
Microsoft.SharePoint.Client.ListCollection lists;
try
listUrl = title.Replace(spaceChar, string.Empty);
template = GetListTemplate((uint)localeIdentifier, listTemplateGUID);
listInfo = new ListCreationInformation();
listInfo.Url = listUrl;
listInfo.Title = title;
listInfo.Description = string.Empty;
listInfo.TemplateFeatureId = template;
listInfo.QuickLaunchOption = QuickLaunchOptions.On;
clientContext.Load(site);
clientContext.ExecuteQuery();
lists = site.Lists;
clientContext.Load(lists);
clientContext.ExecuteQuery();
newList = lists.Add(listInfo);
clientContext.ExecuteQuery();
catch (ServerException ex)
Now, this particular part, newList = lists.Add(listInfo); clientContext.ExecuteQuery();, the one that is supposed to create the actual list, throws an exception:
Message: Cannot complete this action. Please try again.
ServerErrorCode: 2130239231
ServerErrorTypeName: Microsoft.SharePoint.SPException
Could anyone please help me realize what am I doing wrong? Thanks.I've made progress - well, at least to some extent. The previous message related to the "Invalid file name" is not appearing any more. I now realize that it is necessary to specify feature ID, list template kind, as well as custom schema in order
to order SharePoint 2010 to create the document library.
However, there's a new problem which isn't documented on the net almost at all (at least I was unable to find anything): The document library gets created, but I cannot access it. Further inspection showed that the doc lib views are not created. Basically,
the only accessible doc lib page is the document library settings page. Also, I get the server exception with the message:
Server Out Of Memory. There is no memory on the server to run your program. Please contact your administrator with this problem.
Any idea what is causing this issue? Thanks.
Hi Boris
Borenović,
I think I found the reason for this notorious "Server Out Of Memory" error.
(Man, it took 4 hrs of frustrating troubleshooting without any direct hints... very disappointing
MSFT developers :( ).
Anyway,
All the "Form" elements at the bottom need to have SetupPath="pages\form.aspx"
attribute (by default this attrib is missing when you copy the whole List element from inside the stp's manifest.xml file).
Also, just make sure that each "View" element has correct "WebPartZoneID", "SetupPath" and "Url" attribute values otherwise that list/library will
be created successfully but will fail to load when you try to access it (with the VERY helpful "Cannot complete this action, contact administrator" error). Even if you enable stack trace (or check ULS logs) you will find "An unexpected
error has been encountered in this Web Part. Error: A Web Part or Web Form Control on this Page cannot be displayed or imported. The type could not be found or it is not registered as safe." and you will never realize it's because of the
incorrect attributes ("WebPartZoneID", "SetupPath" or "Url" as mentioned above).
Come on Microsoft, you can do better than that?
If the API needs this attrib then why is it missing inside the manifest.xml file when
an STP file generated in the first place? -
Client Object Model Sharepoint 2010
We are using client object model in sharepoint 2010
When we excute the ExcuteQuery method of clinet obejct model we are getting following error
The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again
GirishHi ,
A FormDigest control has to be included to create a digest for security validations when performing some modifications to SharePoint data. It adds a security token inside your page based on user, site and time. Once the page is posted back the security token
is validated. Once the security token is generated it’s valid for a configurable amount of time.
for more info check the below links
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.formdigest.aspx
http://ranaictiu-technicalblog.blogspot.com.au/2010/02/sharepoint-2010-client-object-model-for.html
if above link is not working, use below function before execute the query.
function CustomUpdateFormDigest()
if(window._spPageContextInfo != null)
var $v_2 = window._spPageContextInfo;
var $v_3 = $v_2.webServerRelativeUrl;
var $v_4 = window._spFormDigestRefreshInterval;
UpdateFormDigest($v_3, $v_4);
CustomUpdateFormDigest();
Please mark it as an answer/helpful if it is useful.
Thanks
Mahesh -
Assign Group permission to list item using client object model
Hi,
I am trying to add the list item and assign the permission to the list item by using SP 2010 client object model. The problem which i am facing that when i assign the group as a permission to the item, by automatically the limited access permission
is added to the group. Please find the steps which i have followed,
Step-1: Break role inheritance.
foreach (var item in _listItemCollection)
if (item["FileLeafRef"].ToString().ToLower() == "xxx")
item.BreakRoleInheritance(true, false);
_clientContext.Load(item.RoleAssignments);
_folderItem = item;
_clientContext.ExecuteQuery();
Step 2: Remove all permissions of the list item.
foreach (var assignment in _folderItem.RoleAssignments)
assignment.RoleDefinitionBindings.RemoveAll();
assignment.Update();
_clientContext.ExecuteQuery();
Step 3:
Add Group as a permission to the list item.
var role = _web.RoleDefinitions.GetByType(RoleType.Contributor);
var collRdb = new RoleDefinitionBindingCollection(_clientContext) { role };
Principal principal = _grp;
_folderItem.RoleAssignments.Add(principal, collRdb);
_folderItem.Update();
_clientContext.ExecuteQuery();
After adding the group successfully to the list item, i checked the group permission and it contains the value as "Contribute,Limited Access" to the site level and "Contribute" to the list item. Please guide me how to avoid to create Contribute,Limited
Access role.
BalajiHi Dmitry,
When I create the group and assign contribute permission, the group has the permission at the site level(to see the permission, click group and click view Group Permission). I have added the list item and break the role inheritance permission
and given the unique permission by providing group as a permission to the list item. After providing the permission, the group permission at the site level changed to "Contribute, Limited Access". I dont know how contribute permission changed to contribute,
limited access.
I found the workaround to fix this issue. I created the group and create the folder in the shared document library by using client object model. Due to facing some issue by providing the permission using client object model, i have created the event receiver
to the document library and using server object model, i can able to assign the approprate group permission.
Balaji -
I'm using the SharePoint 2013 Client Object Model to access a site that is either in Office 365 or behind an ADFS 3.0 login screen, is it sufficient to use the new SharePointOnlineCredentials credentials
or do I need other types of credentials for the sites behind ADFS 3.0 ? Is so, what type of credentials would I use for the sites behind ADFS 3.0?
using (ClientContext ctx = new ClientContext(siteUrl))
ctx.Credentials = new SharePointOnlineCredentials("some user", "a secure string password");
while (ctx.HasPendingRequest)
ctx.ExecuteQuery();
// etc.Hi,
According to your post, my understanding is that you want to know the ways to get credential either in Office 365 or sites behind ADFS 3.0.
For Office 365, you can use SharePointOnlineCredentials Object to get credential. For SharePoint sites behind ADFS 3.0, you can use NetworkCredential Object:
ctx.Credentials = new NetworkCredential(UserName, Password, Domain);
The link below will provide more information about using the ADFS FedAuth Token programmatically through the SharePoint Client Object Model:
http://samirvaidya.blogspot.com/2013/05/using-adfs-fedauth-token.html
Best regards
Patrick Liang
TechNet Community Support -
Conflict between Client object model and Item Updated Event Receiver in sharepoint 2010
Hello All,
As per my requirement I have a two custom list.
Agent Details
Port Name
Agent Details contains Agent code, Port Name, email, address and phone of Agent. Its possible that one Agent Code is connected with multiple Port Name.
Basically what I am doing is I am getting port name connected with Agent code, using jquery and bind those values with check box(using javascript created dynamically) and bind all with Div tag.
Now when my custom edit form of Agent list open up it shows me different port name binding with checkbox group.
when user select the check box and click confirm button my clicent object model script will run and add this selected value into Port Name list.
After confirm one more button named Save will enable asking user to edit the email, phone or address value and when I click on save my Item updated event fires which update the values of the selected port name(These port name I am getting from port
name list) to Agent Details custom list.
Now when I am trying to update the values my event receiver fires or some times it got stuck(not firing). So could you please help me the possible alternative for this requirements.
Can we user the Ecma Script(Client object model to preserve the value of selectec port) and Item updated event receiver on the same time?
Is anything am doing wrong then please guide me.Hi,
As I understand, when you updated values in the agent details list the Item updated event receiver got stuck sometimes.
The item update event receiver will fire after the item has been saved, and the client object model script or the Ecma Script runs before the item is saved, so there is no conflict between the client object model script and item update event receiver.
You could find out the reason about the item update event receiver gets stuck by debugging the event receiver.
When you want to debug your event receivers, you have to attach to OWSTIMER.EXE and wait till they are executed. You can control this behavior using the Synchronization attribute. Also, if you’re looking for an easy way to debug an event receiver without
having to manually attach a debugger to your code, you can use the System.Diagnostics.Debugger.Launch() method.
The articles below are about how to debug in the event receiver in SharePoint 2010.
http://sharepoint-kings.blogspot.jp/2013/02/debugging-event-receivers-in-sharepoint.html
http://chakkaradeep.com/index.php/event-receivers-in-sharepoint-2010/
http://sharesaint.com/?p=77
Best regards,
Sara Fan
TechNet Community Support
Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
[email protected] -
Unable to get the SharePoint 2013 List names using Client object model for the input URL
Please can you help with this issue.
We are not able to get the SharePoint 2013 List names using Client object model for the input URL.
What we need is to use default credentials to authenticate user to get only those list which he has access to.
clientContext.Credentials = Net.CredentialCache.DefaultCredentials
But in this case we are getting error saying ‘The remote server returned an error: (401) Unauthorized.’
Instead of passing Default Credentials, if we pass the User credentials using:
clientContext.Credentials = New Net.NetworkCredential("Administrator", "password", "contoso")
It authenticates the user and works fine. Since we are developing a web part, it would not be possible to pass the user credentials. Also, the sample source code works perfectly fine on the SharePoint 2010 environment. We need to get the same functionality
working for SharePoint 2013.
We are also facing the same issue while authenticating PSI(Project Server Interface) Web services for Project Server 2013.
Can you please let us know how we can overcome the above issue? Please let us know if you need any further information from our end on the same.
Sample code is here: http://www.projectsolution.com/Data/Support/MS/SharePointTestApplication.zip
Regards, PJ Mistry (Email: [email protected] | Web: http://www.projectsolution.co.uk | Blog: EPMGuy.com)Hi Mistry,
I sure that CSOM will authenticate without passing the
"clientContext.Credentials = Net.CredentialCache.DefaultCredentials" by default. It will take the current login user credentials by default. For more details about the CSOM operations refer the below link.
http://msdn.microsoft.com/en-us/library/office/fp179912.aspx
-- Vadivelu B Life with SharePoint -
I have two Lists i.e. Publisher and Products in my SharePoint Online site. They are having the following structures:
1. Publisher:
Publisher (Single line of txt)
A1
A2
A3
A4
A5
A6
2. Products:
Publisher (lookup to the above column)
ProductName (Single line of txt)
A1 Apple
A2 Samsung
A3 Nokia
And I have an excel file named Products.xlsx in my local machine which has the following data:
Publisher ProductName
A1 Apple
A2 Samsung
A3 Nokia
A4 Motorola
A5 LG
A6 HTC
Now I have written the below client-side (CSOM) code to fetch the data from the Excel and update the corresponding fields in the Products table:
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Web;
using System.IO;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Client;
using File =
Microsoft.SharePoint.Client.File;
using System.Security;
namespace ExcelToSP
public class
ExcelToSP
//Main function to get the command line values and invoke the getSPList function to pull SP List data
public
static void Main(string[] args)
//Instantiate Class object
ExcelToSP p
= new ExcelToSP();
try
p.LoadExcelData();
//Exit with Sucess code
Environment.Exit(0);
catch
(Exception ex)
//Invoke writeErrorLog function to log the exception details
//p.WriteErrorLog(ex);
public
void LoadExcelData()
try
string fileName
= @"E:\Products.xlsx";
string fileExtension
= Path.GetExtension(fileName).ToUpper();
string connectionString
= "";
if
(fileExtension == ".XLS")
connectionString
= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='"
+ fileName + "'; Extended Properties='Excel 8.0;HDR=YES;'";
else
if (fileExtension ==
".XLSX")
connectionString
= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='"
+ fileName + "';Extended Properties='Excel 12.0 Xml;HDR=YES;'";
if
(!(string.IsNullOrEmpty(connectionString)))
string[] sheetNames =
GetExcelSheetNames(connectionString);
if ((sheetNames !=
null) &&
(sheetNames.Length
> 0))
DataTable dt = null;
OleDbConnection con =
new OleDbConnection(connectionString);
OleDbDataAdapter da =
new OleDbDataAdapter("SELECT * FROM ["
+ sheetNames[0]
+ "]", con);
dt
= new DataTable();
da.Fill(dt);
InsertIntoList(dt,"Products");
catch
(Exception ex)
throw ex;
private
string[] GetExcelSheetNames(string strConnection)
var connectionString
= strConnection;
String[] excelSheets;
using
(var connection =
new OleDbConnection(connectionString))
connection.Open();
var dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
null);
if (dt ==
null)
return null;
excelSheets
= new String[dt.Rows.Count];
int i = 0;
// Add the sheet name to the string array.
foreach (DataRow row
in dt.Rows)
excelSheets[i]
= row["TABLE_NAME"].ToString();
i++;
return excelSheets;
private
void InsertIntoList(DataTable listTable,
string ListName)
try
string username = "[email protected]";
string pwd = "contoso@1234";//this.Dts.Variables["password"].Value.ToString();
ClientContext clientContext =
new ClientContext("https://contoso.sharepoint.com/teams/myPOC/");
SecureString password =
new SecureString();
char[] decryptpwd = pwd.ToCharArray();
foreach (char c
in decryptpwd)
password.AppendChar(c);
clientContext.Credentials
= new SharePointOnlineCredentials(username, password);
clientContext.ExecuteQuery();
//Setting SiteURL Client context
Web web = clientContext.Web;//
clientContext.Load(web);
clientContext.ExecuteQuery();
List lstProductFamily = web.Lists.GetByTitle("Products");
for (int iRow
= 0; iRow < listTable.Rows.Count; iRow++)
ListItemCreationInformation itemCreateInfo =
new ListItemCreationInformation();
ListItem newItem = lstProductFamily.AddItem(itemCreateInfo);
//FieldLookupValue flv = newItem["Publisher"] as FieldLookupValue ;
//string lkup = flv.LookupValue;
//int valueid = 0;
//valueid = flv.LookupId;
newItem["Publisher"]
= Convert.ToString(listTable.Rows[iRow][0]);
newItem["ProductName"]
= Convert.ToString(listTable.Rows[iRow][1]);
newItem.Update();
clientContext.ExecuteQuery();
catch
(Exception ex)
throw ex;
But I'm getting the following error on running the above code "Invalid data has been used to update the list item. The field you are trying to update may be read only."
Can anybody please help me out?Hi,
According to your description, my understanding is that you want to update data to look up field.
I have a test about updating look up field using Client Object Model in my environment. lookup field will accept an array to set the field value.
Here is the code snippet:
Microsoft.SharePoint.Client.ClientContext ctx = new ClientContext("http://sp2013sps/sites/test/");
if (ctx != null)
List list = ctx.Web.Lists.GetByTitle("List3");
ListItem itemToUpdate = list.GetItemById(1);
ctx.Load(itemToUpdate);
ctx.ExecuteQuery();
FieldLookupValue newLookUpField = new FieldLookupValue();
newLookUpField.LookupId = 3;
FieldLookupValue newLookUpField1 = new FieldLookupValue();
newLookUpField1.LookupId = 4;
FieldLookupValue[] newarr = { newLookUpField, newLookUpField1 };
itemToUpdate["lookup"] = newarr;
itemToUpdate.Update();
ctx.Load(itemToUpdate);
ctx.ExecuteQuery();
Best regards
Patrick Liang
TechNet Community Support -
Setting the default value to taxonomy column in sharepoint 2010 using client object model
I am creating a metadata column and I want to set its default value in sharepoint 2010 using client object model. Can anyone help me?
My code for creating metadata column is as below:
ClientContext clientContext = new ClientContext(siteUrl);
Web site = clientContext.Web;
List list = site.Lists.GetByTitle("LibraryName");
FieldCollection collField = list.Fields;
string fieldSchema = "<Field Type='TaxonomyFieldType' DisplayName='SoftwareColumn' Name='SoftwareColumn' />";
collField.AddFieldAsXml(fieldSchema, true, AddFieldOptions.DefaultValue);
//oneField.DefaultValue = "ASP.NET|4c984b91-b308-4884-b1f1-aee5d7ed58b2"; // wssId[0].ToString() + ";#" + term.Name + "|" + term.Id.ToString().ToLower();
clientContext.Load(collField);
clientContext.ExecuteQuery();Hi,
Please try the code like this:
ClientContext clientContext = new ClientContext("http://yoursite/");
List list = clientContext.Web.Lists.GetByTitle("List1_mmsfield");
clientContext.Load(list);
clientContext.ExecuteQuery();
FieldCollection fields = list.Fields;
clientContext.Load(fields);
clientContext.ExecuteQuery();
Field f = fields.GetByTitle("mms");
clientContext.Load(f);
clientContext.ExecuteQuery();
Console.WriteLine(f.Title + "---" + f.DefaultValue);
//2;#A2|a0a95267-b758-4e4d-8c39-067069fd2eef
//1;#A1|641f5726-992c-41c8-9ddc-204a60b88584
f.DefaultValue = "1;#A1|641f5726-992c-41c8-9ddc-204a60b88584";
f.Update();
clientContext.Load(f);
clientContext.ExecuteQuery();
Console.WriteLine(f.Title + "---" + f.DefaultValue);
Best regards
Patrick Liang
TechNet Community Support -
How to get all previous versions page contents and other field values of a publishing page using SharePoint Client Object Model 2010?
Thanks,
OsmitaHi Osmita,
Greetings.
Here are the links that helps you. It has code attached to it.
http://social.technet.microsoft.com/Forums/sharepoint/en-US/a0d2ab40-99ba-4368-8505-1dc559ef6469/get-content-of-previous-version-of-page-sharepoint-2010?forum=sharepointgeneralprevious
http://social.technet.microsoft.com/Forums/sharepoint/en-US/faaf419f-997e-4150-9911-48cc375c3b46/how-to-get-previous-published-versions-of-publishing-pages-in-sharepoint-2010?forum=sharepointdevelopmentprevious
Please remember to click 'Mark as Answer' on the answer if it helps you -
Hi,
I want to fetch the list of users who all are having full access to the sharepoint list using client object model with .Net
Please let me know if any property for the user object or any other way to get it.
Thanks in advance.Here you are complete code i created from some years it lists all groups and users, you can just add a check in the permissions loop to see if it is equal to Full Control.
Private void GetData(object obj)
MyArgs args = obj as MyArgs;
try
if (args == null)
return; // called without parameters or invalid type
using (ClientContext clientContext = new ClientContext(args.URL))
// clientContext.AuthenticationMode = ClientAuthenticationMode.;
NetworkCredential credentials = new NetworkCredential(args.UserName, args.Password, args.Domain);
clientContext.Credentials = credentials;
RoleAssignmentCollection roles = clientContext.Web.RoleAssignments;
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi;
ListViewItem lvigroup;
ListViewItem.ListViewSubItem lvsigroup;
clientContext.Load(roles);
clientContext.ExecuteQuery();
foreach (RoleAssignment orole in roles)
clientContext.Load(orole.Member);
clientContext.ExecuteQuery();
//name
//MessageBox.Show(orole.Member.LoginName);
lvi = new ListViewItem();
lvi.Text = orole.Member.LoginName;
lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = orole.Member.PrincipalType.ToString();
lvi.SubItems.Add(lvsi);
//get the type group or user
// MessageBox.Show(orole.Member.PrincipalType.ToString());
if (orole.Member.PrincipalType.ToString() == "SharePointGroup")
lvigroup = new ListViewItem();
lvigroup.Text = orole.Member.LoginName;
// args.GroupsList.Items.Add(lvigroup);
DoUpdate1(lvigroup);
Group group = clientContext.Web.SiteGroups.GetById(orole.Member.Id);
UserCollection collUser = group.Users;
clientContext.Load(collUser);
clientContext.ExecuteQuery();
foreach (User oUser in collUser)
lvigroup = new ListViewItem();
lvigroup.Text = "";
lvsigroup = new ListViewItem.ListViewSubItem();
lvsigroup.Text = oUser.LoginName;
lvigroup.SubItems.Add(lvsigroup);
//args.GroupsList.Items.Add(lvigroup);
DoUpdate1(lvigroup);
// MessageBox.Show(oUser.LoginName);
RoleDefinitionBindingCollection roleDefsbindings = null;
roleDefsbindings = orole.RoleDefinitionBindings;
clientContext.Load(roleDefsbindings);
clientContext.ExecuteQuery();
//permission level
lvsi = new ListViewItem.ListViewSubItem();
string permissionsstr = string.Empty;
for (int i = 0; i < roleDefsbindings.Count; i++)
if (i == roleDefsbindings.Count - 1)
permissionsstr = permissionsstr += roleDefsbindings[i].Name;
else
permissionsstr = permissionsstr += roleDefsbindings[i].Name + ", ";
lvsi.Text = permissionsstr;
lvi.SubItems.Add(lvsi);
// args.PermissionsList.Items.Add(lvi);
DoUpdate2(lvi);
catch (Exception ex)
MessageBox.Show(ex.Message);
finally
DoUpdate3();
Kind Regards, John Naguib Technical Consultant/Architect MCITP, MCPD, MCTS, MCT, TOGAF 9 Foundation
Maybe you are looking for
-
Hi all. We are thinking about using ODBC in our tuxedo services to make easy the migration between one database and other of a different vendor. We also need to use XA. Have some of you information about using ODBC and XA, (conception, problems, ...)
-
Some PDF Document Fonts Are not Appearing Correctly.
To give an example, I am talking about this document. The image shows how it appears with my adobe reader, even though readers like evince or okular display it just fine. THe problem persists with several documents, but not all of them. So far I am n
-
Problem to installing oracle9i software! please help me..
Hai good afternoon!! When i am installing oracle9i software it displaying the following error. Please tell how i am clear this error.. please help. Advanced thank you to all Configuration Tools Tool Name Status Agent configuration Assistant failed(se
-
Is it possible to have only one line per item in InfoView document list?
Hi, my customer is complaining about InfoView (Document list) wasting too much screen estate. For each list item (report, folder etc.) InfoView displays two lines, one for the name and one for the description. Is it possible to configure InfoView to
-
Cant open application because it is not supported on this architecture??
the graphics processor on my computer broke so i had to pull files off using the firewire system to connect two computers and when i went to open the address book this appeared "cant open application address book because it is not supported on this a