【发布时间】:2010-11-16 19:09:48
【问题描述】:
我一直在尝试以编程方式重现在 SharePoint 站点管理屏幕中编辑内容类型的字段属性并使用 WSS 3.0 Web 服务的 Webs.asmx“UpdateContentType”方法选择“必需”单选按钮但没有成功的行为.
第一个困难是 MSDN 文档的问题,即所述字段应该是 FieldRef 类型,而实际上它们需要是 Field 类型 (reference)。修复后添加字段和删除字段工作正常,但更新字段似乎根本不起作用。 (还应该注意的是,我按照上一个链接上的建议使用Method="2" 更新字段,但它没有任何改变,并且使用除 1 之外的方法值添加或除 3 之外的方法值也可以正常工作)。
这是 Web 服务调用(为了便于阅读,用字符串而不是 XmlNode 对象稍作修改):
SharePointWebServices.Webs webService = new SharePointWebServices.Webs();
webService.Url = "http://mysharepointserver/site";
webService.UseDefaultCredentials = true;
webService.UpdateContentType(
@"0x01005A089D9EC8A382458FB1F6C72096D52A",
@"<ContentType />",
@"<Fields />",
@"<Fields><Method ID=""1""><Field Name=""SomeField"" ID=""{8a4803c4-6545-4a7a-804d-237eebff0ce3}"" Required=""TRUE"" Hidden=""FALSE"" ReadOnly=""FALSE"" PITarget="""" PIAttribute="""" PrimaryPIAttribute="""" Aggregation="""" Node="""" /></Method></Fields>",
@"<Fields />");
调用后,该字段仍为Required="FALSE"。
快速查看 stssoap.dll 程序集表明“必需”属性在更新过程中显然被忽略了。这是正常行为吗?如果是这样,以编程方式从客户端代码(不在 SharePoint 服务器上执行)更改“必需”字段的推荐方法是什么?
任何帮助将不胜感激。
【问题讨论】:
标签: web-services sharepoint content-type