如何使用JavaScript从SharePoint中的列表中提取数据
我试图从我的私有Sharepoint中的列表中提取数据,我的列表有3列:ID | PieCography | PieNumber和12个值。我在开发中心找到了这个代码。出于某种原因,即使它看起来很简单,也有一些东西不起作用。我已写信核实:如何使用JavaScript从SharePoint中的列表中提取数据,javascript,sharepoint,raphael,extraction,Javascript,Sharepoint,Raphael,Extraction,我试图从我的私有Sharepoint中的列表中提取数据,我的列表有3列:ID | PieCography | PieNumber和12个值。我在开发中心找到了这个代码。出于某种原因,即使它看起来很简单,也有一些东西不起作用。我已写信核实: alert('Test'); 这方面都很好,所以我的列表或下面的代码肯定有问题。我并不特别喜欢这段代码,如果有更好/最简单的方法,我会接受!我已经尝试了我在下面编写的其他代码,但没有一个与我编写的当前设置一致 var siteUrl = '/sites/My
alert('Test');
这方面都很好,所以我的列表或下面的代码肯定有问题。我并不特别喜欢这段代码,如果有更好/最简单的方法,我会接受!我已经尝试了我在下面编写的其他代码,但没有一个与我编写的当前设置一致
var siteUrl = '/sites/MyPersonalSite';
function retrieveListItems() {
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('pieChart');
//This is my list '/sites/MyPersonalSite/Lists/pieChart/AllItems.aspx'
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View><Query><Where><Geq><FieldRef Name=\'ID\'/>' +
'<Value Type=\'Number\'>1</Value></Geq></Where></Query><RowLimit>2</RowLimit></View>');
this.collListItem = oList.getItems(camlQuery);
// It was originally set to 10 but moved it to 2 and I have 12 observations so it should be enough
clientContext.load(collListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded(sender, args) {
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
listItemInfo += '\nID: ' + oListItem.get_id() +
'\nCategory: ' + oListItem.get_item('PieCategory') +
'\nValue: ' + oListItem.get_item('PieNumber');
}
alert(listItemInfo.toString());
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
我痛苦地试图实现的第二个代码
function retrieveListItems() {
var clientContext = new SP.ClientContext('/sites/MyPersonalSite');
var oList = clientContext.get_web().get_lists().getByTitle('pieChart');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View><Query><Where><Leq>' +
'<FieldRef Name=\'ID\'/><Value Type=\'Number\'>10</Value>' +
'</Leq></Where></Query><RowLimit>5</RowLimit></View>');
this.collListItem = oList.getItems(camlQuery);
clientContext.load(collListItem, 'Include(ID, PieNumber, PieCategory)');
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded(sender, args) {
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
listItemInfo += '\nID: ' + oListItem.get_id() +
'\nDisplay name: ' + oListItem.get_PieNumber() +
'\nCategory: ' +oListItem.get_PieCategory();
}
alert(listItemInfo.toString());
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
我知道C有很多方法可以做到这一点,但我只能在JavaScript上做到这一点,因为我正试图将它从gRaphael推出到一个图表中,并且我试图使它非常简单,以备将来使用。当使用第二个时,我收到一个已经存在的警报,它说:请求失败:列“PieCegory”不存在。但它确实存在,因此出于某些原因它无法识别。在您第一次尝试查看xml时,请尝试以下视图:12另外,您是否确定PieControle和PieNumber是字段的静态名称?您可以安装Firefox和插件Firebug来检查发送到服务器的请求和响应。您将看到可能的错误消息。另外,来自微软的本机函数很难使用,而且一点也不清楚。你可能想尝试一下,用一个简单的API做这项艰巨的工作。这是静态名称-得到它排序!!非常感谢@Yeygeiny.Chernobrivets