我正在尝试将值保存到sharepoint列表中。我可以使用" SP.ClientContext.get_current();"将其保存到子网站列表中。没有问题。但是,我想使用URL将其保存到partent网站上的同名列表中。获取以下错误: 未捕获的TypeError:无法读取属性' get_web'未定义的
var siteUrl;
siteUrl = '/sites/Mysite/';
var clientContext = SP.ClientContext(siteUrl);/*.get_current();*/
var oList = clientContext.get_web().get_lists().getByTitle('QuizResults');
var itemCreateInfo = new SP.ListItemCreationInformation();
var oListItem = oList.addItem(itemCreateInfo);
var vURL = (document.URL);
var vScore = 'score';
var vDate = new Date();
oListItem.set_item('Title', vURL);
oListItem.set_item('Score', vScore);
oListItem.set_item('Date', vDate);
oListItem.update();
clientContext.load(oListItem);
clientContext.executeQueryAsync(Function.createDelegate(this,onQuerySucceeded), Function.createDelegate(this, onQueryFailed));
function onQuerySucceeded()
{
('Item created: ' + oListItem.get_id());
}
function onQueryFailed(args)
{
('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
//end of section for adding score to list
答案 0 :(得分:0)
如果您使用SP.ClientContext(siteUrl)
函数(构造函数)而不是调用get_current()
,则应使用new
关键字来实例化新上下文。
var clientContext = new SP.ClientContext.(siteUrl);
get_current()
函数返回适合当前页面/站点的上下文。传入URL时,您需要实际创建一个新URL。
答案 1 :(得分:0)
感谢John-M,但我实际上是通过以下方式解决了这个问题:
var clientContext = new SP.ClientContext.get_current();
var oList = clientContext.get_site().get_rootWeb().get_lists().getByTitle('QuizResults');
添加的部分是" .get_site()。get_rootWeb()"
答案 2 :(得分:0)
使用网站网址打开rootsite的新网站
string rootSiteUrl = SPContext.Current.Web.Site.Url;
using (SPSite site = new SPSite(rootSiteUrl ))
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.GetList("QuizResults");
//Add item here
}
}