无法访问父Sharepoint URL。未捕获的TypeError:无法读取未定义的属性“get_web”

时间:2014-12-22 20:23:15

标签: javascript sharepoint

我正在尝试将值保存到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

3 个答案:

答案 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


            }
        }