Javascript 使用SharePoint客户端对象模型检索开始/结束时间字段
我有一些使用SharePoint客户端对象模型从SP 2013中的列表检索文本字段和URL/图像的经验。我目前正在尝试用日历做类似的事情。我已经能够成功地检索标题和位置字段,没有任何问题,但我无法检索开始和结束时间字段。我搞不清楚到底是什么问题。此外,我可以阅读创建和修改没有问题。以下是相关代码:Javascript 使用SharePoint客户端对象模型检索开始/结束时间字段,javascript,sharepoint,sharepoint-2013,sharepoint-clientobject,csom,Javascript,Sharepoint,Sharepoint 2013,Sharepoint Clientobject,Csom,我有一些使用SharePoint客户端对象模型从SP 2013中的列表检索文本字段和URL/图像的经验。我目前正在尝试用日历做类似的事情。我已经能够成功地检索标题和位置字段,没有任何问题,但我无法检索开始和结束时间字段。我搞不清楚到底是什么问题。此外,我可以阅读创建和修改没有问题。以下是相关代码: function retrieveListItemsCal() { var clientContextCal = new SP.ClientContext.get_current();
function retrieveListItemsCal() {
var clientContextCal = new SP.ClientContext.get_current();
var oListCal = clientContextCal.get_web().get_lists().getByTitle('Calendar');
var camlQueryCal = new SP.CamlQuery.createAllItemsQuery();
AllItemsCal = oListCal.getItems(camlQueryCal);
clientContextCal.load(AllItemsCal);
clientContextCal.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededCal), Function.createDelegate(this, this.onQueryFailedCal));
}
function onQuerySucceededCal(sender, args) {
var listItemInfo = '';
var listItemEnumeratorCal = AllItemsCal.getEnumerator();
var htmlCal = '';
htmlCal+="<div id='CalHeader'>Upcoming Events</div>\
<div id='CalDivider'></div>\
<div id='CalContainer'>";
while(listItemEnumeratorCal.moveNext()) {
var oListItemCal = listItemEnumeratorCal.get_current();
/*htmlCal+="<div class='CalItem'>\
"oListItemCal.get_item('Start Time')"\
</div>";*/
alert(oListItemCal.get_item("Start Time").format("MMMM d, yyyy"));
}
htmlCal+="</div>";
$("#CalSpace").append(htmlCal);
}
function onQueryFailedCal(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
$(document).ready(function(){
SP.SOD.executeFunc("sp.js", "SP.ClientContext", retrieveListItemsCal);
});
函数retrieveListItemsCal(){
var clientContextCal=new SP.ClientContext.get_current();
var oListCal=clientContextCal.get_web().get_lists().getByTitle('Calendar');
var camlQueryCal=new SP.CamlQuery.createAllItemsQuery();
AllItemsCal=oListCal.getItems(camlQueryCal);
clientContextCal.load(AllItemsCal);
clientContextCal.executeQueryAsync(Function.createDelegate(this,this.onQuerySucceedCal),Function.createDelegate(this,this.onQueryFailedCal));
}
函数onQuerySucceedCal(发送方,参数){
var listItemInfo='';
var ListItemEnumerator=AllItemsCal.getEnumerator();
var htmlCal='';
htmlCal+=“即将举行的活动\
\
";
while(listItemEnumeratorCal.moveNext()){
var oListItemCal=listItemEnumeratorCal.get_current();
/*htmlCal+=”\
“oListItemCal.get_项('开始时间')”\
";*/
警报(oListItemCal.get_项(“开始时间”).格式(“MMMM d,yyyy”);
}
htmlCal+=“”;
$(“#CalSpace”).append(htmlCal);
}
函数onQueryFailedCal(发送方,参数){
警报('请求失败。'+args.get_message()+'\n'+args.get_stackTrace());
}
$(文档).ready(函数(){
SP.SOD.executeFunc(“SP.js”、“SP.ClientContext”、retrieveListItemsCal);
});
下面是列表列的屏幕截图:我已经解决了我的问题。我运行了以下PowerShell查询(在此处找到): 开始时间和结束时间字段的内部名称分别为EventDate和EndDate
$web = Get-SPWeb SiteUrl
$list = $web.Lists["Announcements"]
$list.fields | select Title, InternalName, Hidden, CanBeDeleted | sort title | ft -AutoSize