修改ListItem之后,modified和modified by不变
可以在References上面右键,选择Manage NuGet packages…,在Browser tab下面搜索Microsoft.SharePointOnline.CSOM,找到后点击install即可使用SystemUpdate()。
item.SystemUpdate();
clientContext.ExecuteQuery();
得到Approval status的值:
在得到ListItem之后根据 "_ModerationStatus"属性可以得到approval status
int status = Convert.ToInt32(item["_ModerationStatus"]);
And the enum is defined as:
public enum SPModerationStatusType
{
Approved, //0
Denied, //1
Pending, //2
Draft, //3
Scheduled //4
}
ListItem的属性返回的是FieldUserValue对象,不是值,怎么得到里面的值呢?
var value = item["Contact"] as FieldUserValue;
var name = value.LookupValue;
修改List的checkout required
if (list.ForceCheckout == true)
{
list.ForceCheckout = false;
list.Update();
clientContext.ExecuteQuery();
}
得到List/Library里面所有的listItem
ListItemCollection collListItem = list.GetItems(CamlQuery.CreateAllItemsQuery());
判断file是否是checkout状态
if (item.File.CheckOutType != CheckOutType.None)
{
skipFile.WriteLine(item.DisplayName + "," + site + item.File.ServerRelativeUrl);
}
分隔符
保存page的一些属性到csv文件,属性之间用逗号分隔,但是page的名字可以包含一些特殊字符串(例如逗号,),名字本身带的逗号,被当成分隔符。可以使用|来代替。
权限相关的
得到List或是ListItem的权限的组,或是stop inheriting。
//For Item
item.BreakRoleInheritance(false, false);
GroupCollection listItemsGroupCollection = item.RoleAssignments.Groups;
clientContext.Load(listItemsGroupCollection);
clientContext.ExecuteQuery();
foreach (Group group in listItemsGroupCollection)
{
listItemsGroupCollection.Remove(group);
}
clientContext.ExecuteQuery();
//for List
siteAllLists[i].BreakRoleInheritance(false, false);
GroupCollection gc = siteAllLists[i].RoleAssignments.Groups;
clientContext.Load(gc));
clientContext.ExecuteQuery();
for (int j = gc.Count - 1; j >= 0; j++)
{
gc.Remove(gc[j]);
}
clientContext.ExecuteQuery();