0

我有一个包含三列 1) 标题、2) LoginUser 3)ParentSiteAccess 的列表。如果特定用户已登录,那么我需要获取第三列的值(即 ParentSiteAccess)。我正在使用以下查询来获取它。

query.Query = @"<Where><Eq><FieldRef Name='LoginUser'/><Value Type='Text'>" + userName + "</Value></Eq></Where>";
                    query.ViewFields = "<FieldRef name='ParentSiteAccess'/><FieldRef name='LoginUser'/>";
                    query.ViewFieldsOnly = true;

但我不接受这种方法。谁能给我一个有效的解决方案?

4

1 回答 1

1

您的查询看起来格式正确,但如果无法访问您的环境,则很难调试。一个常见问题是列的显示名称与其内部名称不匹配。

我可以告诉您的最好的事情是获得一个名为U2U CAML Query Builder的方便的免费程序的副本。2007 版可与 SP 2010 一起正常工作。

如果您与 SharePoint 安装不在同一个盒子上,请使用“SharePoint Web Services”进行连接。如果是,“对象模型”或“Web 服务”选项都可以使用。

登录后,指向您的列表并使用 UI 构建您的查询。最好的一点是您可以按显示名称选择列,但它使用它们的内部名称构建查询。这是一种快速试验查询并获得有关其返回内容的即时反馈的快速方法。

当您获得有效的查询时,只需将其从实用程序窗口复制到您的代码中即可。

于 2011-05-25T13:00:13.467 回答