为什么我总是得到财产或字段尚未初始化?

时间:2016-04-13 14:22:50

标签: javascript sharepoint

您好我尝试使用特定字段填充数组。但我总是得到: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填充,但是当我尝试在警报中使用特定字段时,会发生错误。不知道为什么......

任何帮助对你的时间来说都很棒。

BTW我使用了SP Caml Query helper

2 个答案:

答案 0 :(得分:1)

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

尝试:

 int myfunc(int n)
 { int result = 0;
   for (int i = 0; i<n; i++)
     for (int j = i; j>0; j--)
       if (i%j == 0)
         result += j;
   return result;
 }

此答案可能会有所帮助:SharePoint 2013 add javascript after whole page load

答案 1 :(得分:1)

尝试使用 FileLeafRef 。 LinkFilename是一个无效的计算字段。

msdn - Not able to search list using LinkFileName