我正在尝试从一个成功的方法中检索一个参数,该方法在内部调用并使用 Javascript ECMA 脚本执行QueryAsync。
我尝试按照这里的建议
但我在 MicrosfotAjax.js 文件中收到以下错误:
“Collection 尚未初始化。尚未请求或未执行请求。可能需要显式请求。” 在警报中(_returnParam);命令,当它应该说“你好”时,我得到一个未定义的值。在获得返回 listItemInfo 数组的成功函数之前,我想演示一个简单的变量返回。
谢谢您的考虑
function Tblsrch(camlstr){
var siteUrl = '/sites/SIandT%20Project%20Intelligence';
var hello;
var clientContext = new SP.ClientContext(siteUrl);
var oWebsite = clientContext.get_web();
var oList = oWebsite.get_lists().getByTitle('ISATestdata');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml(camlstr);
this.collListItem = oList.getItems(camlQuery);
var _returnParam;
clientContext.executeQueryAsync(Function.createDelegate(this, function(){_returnParam = onQuerySucceeded();}), Function.createDelegate(this, this.onQueryFailed));
alert(_returnParam);
}
function onQuerySucceeded(sender, args){
var listItemInfo = new Array();
var rowInd = 0;
var hello;
var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
// listItemInfo += '\nType:' + oListItem.get_item('Name2') + ' | ' + oListItem.get_item('Plan') + ' | ' + oListItem.get_item('Type1');
listItemInfo[rowInd] = new Array(10);
listItemInfo[rowInd][0] =oListItem.get_item('Name2');
listItemInfo[rowInd][1] =oListItem.get_item('Type1');
listItemInfo[rowInd][2] = oListItem.get_item('Plan');
listItemInfo[rowInd][3] = oListItem.get_item('Analyse');
listItemInfo[rowInd][4] = oListItem.get_item('Design');
listItemInfo[rowInd][5] = oListItem.get_item('Build');
listItemInfo[rowInd][6] = oListItem.get_item('Test');
listItemInfo[rowInd][7] = oListItem.get_item('Run');
listItemInfo[rowInd][8] = oListItem.get_item('SupportMaintenance');
listItemInfo[rowInd][9] = oListItem.get_item('Link1');
listItemInfo[rowInd][10] = oListItem.get_item('Link2');
rowInd++;
}
alert(listItemInfo[0][0] + " " + listItemInfo[0][1] + " " +listItemInfo[0][2] + " " + listItemInfo[0][3] + " " +listItemInfo[0][4] + " " );
var _returnParam = "hello";
return _returnParam;
}
function onQueryFailed(sender, args){
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}