为什么 CAML 不返回共享点列表中的所有字段/值?
我有一个 Sharepoint 列表,其中包含以下列:CopmanyName、Add1、Add2 国家/地区、州/省。仅当国家/地区选择美国或加拿大时,州/省才有输入条件,因此 SharePoint 中很少有记录将此字段 (ows_State) 为空。
现在我尝试使用 Web 服务、CAML 查询从 SharePoint 获取记录,我面临的问题是,如果字段(州/省)为空,则 CAML 无法获取其信息,实际上是字段名称其本身未添加到 XML 的 z:row 元素中。 我将此字段绑定到前端的 gridView (作为 Eval),如果在 XML 中找不到元素 ows_State,则会抛出错误。
任何建议将不胜感激,
如果没有任何效果,那么我可能必须检查并动态添加此字段。
var StateElement = doc.Element(rs + "data").Element(z + "row").Attribute("ows_State_x002f_Province");
if (StateElement == null)
{
doc.Element(rs + "data").Element(z + "row").Add(new XAttribute("ows_State_x002f_Province", " "));
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我也有类似的问题。问题是,如果您的字段为空,CAML 不会在 XML 中返回该字段。
我提出的解决方案是检查 XML 属性是否存在,如果不存在,请手动添加。
看看这个:
http://naimishpandya.wordpress.com/2011/11/15/how-to-add-xml-attribute-to-an-existing-xml-node-in-cc-sharp/
也可以通过LINQ To XML来实现。
http://social.msdn.microsoft.com/Forums/en-US/xmlandnetfx/thread/be75108d-2265-41f0-8a22-f2ecc025cf53
I have had similar problem. The thing is, If your field is empty, CAML won't return you that field in your XML.
The solution I made was to check XML for attribute's existence, If it's not there, add it manually.
Check this out :
http://naimishpandya.wordpress.com/2011/11/15/how-to-add-xml-attribute-to-an-existing-xml-node-in-c-c-sharp/
You can also achieve it through LINQ To XML.
http://social.msdn.microsoft.com/Forums/en-US/xmlandnetfx/thread/be75108d-2265-41f0-8a22-f2ecc025cf53