我正在尝试对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'
的站点上不存在我做错了什么?是否有其他方式来阅读当前的背景?
答案 0 :(得分:3)
你可能遇到了一个让我失望的简单问题:
当您使用getByTitle()
时,您需要使用列表的显示名称,
您的列表是否显示名称&#34; MyList&#34;或者它可能是&#34;我的清单&#34;?
要查找显示名称,请在&#34;网站内容&#34;中查看列表的调用内容。页。
要查找内部名称,请在鼠标悬停(或单击)&#34;网站内容&#34;中的列表名称时查看URL。
尝试get_web().get_lists().getByTitle("My List");
答案 1 :(得分:2)
记住SharePoint会将每个子网站视为一个单独的网站。如果您的代码在SharePoint网站的根目录上运行,但列表位于子网站中,则代码将无法运行。然后,您需要在设置客户端上下文时指定站点。
答案 2 :(得分:1)
你确定get_current实际上正在返回正确的上下文吗?
指定上下文可能更安全。
此外,您可以使用列表ID而不是名称,然后通过ID获取。