c#-通过CSOM错误创建SharePoint查找字段
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-通过CSOM错误创建SharePoint查找字段,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1549字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试使用CSOM在列表上创建查找字段.我在名为“用户状态类型”的ListTemplateType.GenericList中定义了查找值.此设置看起来很好,我可以在SharePoint本身中针对此列表成功创建字段.
当我尝试在目标列表(上面提到的通用列表中引用查找值的列)上创建字段时,问题就来了.
我通过fieldCollection(xml,false,AddFieldOptions.AddToAllContentTypes)提交以下Xml
<Field Type="Lookup" DisplayName="UserStatus" Description="System Activation Status" Required="TRUE" EnforceUniqueValues="FALSE" List="Lists/User Status Types" WebId="~sitecollection" Overwrite="TRUE" PrependId="TRUE" ShowField="Title" UnlimitedLengthInDocumentLibrary="FALSE" StaticName="Status" Name="Status" Hidden="FALSE" ReadOnly="FALSE" />
此列表生成ServerException“值不属于预期范围.”
请注意,虽然通过友好的名称引用列表是理想的,但我也随时可以快速访问Guid.我也对使用命名引用的陷阱也很感兴趣.
解决方法:
在使用CSOM / c#客户端的情况下,答案最终是简化XML和依赖添加后CSOM交互的组合.
简而言之,上述XML可以简化为:
var lookupFieldXml = "<Field DisplayName="UserStatus" Type="Lookup" />";
var field = destinationList.Fields.AddFieldAsXml(lookupFieldXml, false, AddFieldOptions.AddToAllContentTypes);
lookupField = context.CastTo<FieldLookup>(field);
lookupField.LookupList = sourceLookupList.Id.ToString();
lookupField.LookupField = "Title";
// at this point, we can update against lookupField or field. It doesn't appear to matter.
field.Update();
context.ExecuteQuery();
有关此解决方案的注释-这里的关键是显式CastTo运算符与上下文无关.这不是类型安全的强制类型转换,您可以将任何字段强制转换为任何其他类型的字段,并且没有任何抱怨.
内容总结
以上是互联网集市为您收集整理的c#-通过CSOM错误创建SharePoint查找字段全部内容,希望文章能够帮你解决c#-通过CSOM错误创建SharePoint查找字段所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。