列表“MyList”在具有URL的站点中不存在

时间:2013-04-30 13:02:32

标签: sharepoint sharepoint-2013

我正在尝试对SPList进行查询,但是我收到一条错误,指出List不存在。 如何以正确的方式阅读当前上下文? 某种程度上是部署问题?

var clientContext = new SP.ClientContext.get_current();;
var oList = clientContext.get_web().get_lists().getByTitle("MyList");

var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View><Query><Where><Eq><FieldRef Name="SearchUserName" /><Value Type="Text">' + loginName + '</Value></Eq></Where></Query></View>');
this.collListItem = oList.getItems(camlQuery);

clientContext.load(collListItem);

clientContext.executeQueryAsync(Function.createDelegate(this, function (sender, args) {
  //do something
}), Function.createDelegate(this, function (sender, args) {
  //log error
}));

我收到错误:列表'MyList'在URL'.... site path'

的站点上不存在

我做错了什么?是否有其他方式来阅读当前的背景?

3 个答案:

答案 0 :(得分:3)

你可能遇到了一个让我失望的简单问题:

当您使用getByTitle()时,您需要使用列表的显示名称,

您的列表是否显示名称&#34; MyList&#34;或者它可能是&#34;我的清单&#34;?

  • 列表&#39; 标题&#39; =列表显示名称(通常有空格)
  • 列表&#39; 名称&#39; =列出内部名称(通常没有空格或特殊字符)

要查找显示名称,请在&#34;网站内容&#34;中查看列表的调用内容。页。

要查找内部名称,请在鼠标悬停(或单击)&#34;网站内容&#34;中的列表名称时查看URL。

尝试get_web().get_lists().getByTitle("My List");

答案 1 :(得分:2)

记住SharePoint会将每个子网站视为一个单独的网站。如果您的代码在SharePoint网站的根目录上运行,但列表位于子网站中,则代码将无法运行。然后,您需要在设置客户端上下文时指定站点。

答案 2 :(得分:1)

你确定get_current实际上正在返回正确的上下文吗?

指定上下文可能更安全。

此外,您可以使用列表ID而不是名称,然后通过ID获取。