【问题标题】:Why do i always get The property or field has not been initialized?为什么我总是得到属性或字段尚未初始化?
【发布时间】:2016-08-04 17:24:47
【问题描述】:

您好,我尝试使用特定字段填充数组。但我总是得到:The property or field has not been initialized. It has not been requested or the request has not been executed. It may need to be explicitly requested.我在 Sharepoint 2013 上,我使用来自 sharepoint 的内部名称。我认为我的 Caml 查询有问题。

这是我使用的代码:

 function retrieveListItems(siteUrl) {

        var clientContext = new SP.ClientContext(siteUrl);
        var oList = clientContext.get_web().get_lists().getByTitle('MatrixFiles');

        var camlQuery = new SP.CamlQuery();
        camlQuery.set_viewXml('<View><ViewFields><FieldRef Name="LinkFilename" /><FieldRef Name="WebCountry" /><FieldRef Name="WebDepartment" /><FieldRef Name="FileLeafRef" /></ViewFields><Query><OrderBy><FieldRef Name="LinkFilename" /></OrderBy></Query></View>');
        this.collListItem = oList.getItems(camlQuery);

        clientContext.load(collListItem);

        clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));

    }

这里是数组的另一部分:

function onQuerySucceeded(sender, args) {

    var listItemInfo = '';
    var array = [];

    var listItemEnumerator = this.collListItem.getEnumerator();

    while (listItemEnumerator.moveNext()) {
        var oListItem = listItemEnumerator.get_current();
        console.log(oListItem);

        array.push(oListItem);



    }

    alert(oListItem.get_item('LinkFilename'));


}

奇怪的是数组被 SPListItems 填充但是当我尝试在警报中使用特定字段时会发生错误。不知道为什么....

任何帮助都会很棒,感谢您的时间。

顺便说一句,我为此使用了SP Caml Query helper

【问题讨论】:

    标签: javascript sharepoint


    【解决方案1】:

    尝试使用 FileLeafRef。 LinkFilename 是一个不起作用的计算域。

    msdn - Not able to search list using LinkFileName

    【讨论】:

      【解决方案2】:

      我想这个错误的发生是因为 sp.js 脚本尚未加载。

      试试:

        //Insert this right after your opening script tag
         ExecuteOrDelayUntilScriptLoaded(retrieveListItems, "sp.js");
      
         //then your function as written above   
         function retrieveListItems(siteUrl) { etc...};
      

      这个答案也可能有帮助:SharePoint 2013 add javascript after whole page load

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-22
        • 2019-12-02
        • 2021-06-21
        • 2017-03-03
        • 2012-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多