在使用Javascript在SharePoint 2010上工作时遇到问题

时间:2012-08-22 15:41:26

标签: javascript jquery sharepoint sharepoint-2010

我上周正在寻求帮助,以获得为SharePoint 2010工作的简单javascript代码,并且没有真正得到一个明确的答案,我可以使用我工作的地方不幸,所以我决定尝试让我的拥有。它被假定为拍卖清单并在“剩余时间”字段中倒计时,直到该项目到期,但我无法弄清楚出了什么问题。我对javascript和sharepoint非常不熟悉,但我是一位经验丰富的程序员。有人能帮忙吗?这是下面的代码:

<script type="text/javascript">
var context = new SP.ClientContext.get_current();
var web = context.get_web();
var lists = web.get_lists();
var listId = SP.ListOperation.Selection.getSelectedList();
var list = lists.getById(listId);
var item = getItemByName("End Date");
var end = Date.parse(item.text())/1000;
var todayNow = new Date();
todayNow = Date.parse(today)/1000;
var result = (end-todayNow);
var item2 = getItemByName("Time Left");
item2.text(result);
</script>

结束日期是一个可能会被隐藏的字段,但只是用作占位符来查找从现在到项目到期之间的差异。

感谢各位回复。

编辑:好的,谢谢罗伯特,你真的帮了很多忙。当我看到你的最后评论时,我正准备发布这个帖子。我现在非常接近,因为我一直在谷歌搜索和研究你在第一条评论中所说的内容,而且我已经走到了这一步:

&LT;

script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(getWebSiteData, "sp.js");
var context = null;
var web = null;
var lists = null;
var listId = null;
var list = null;
var item = null;
function getWebSiteData(){
context = new SP.ClientContext.get_current();
web = context.get_web();
lists = web.get_lists();
listId = SP.ListOperation.Selection.getSelectedList();
list = lists.getById(listId);
context.load(list, 'End Date');
context.executeQueryAsync(Function.createDelegate
(this, this.onSuccessMethod), Function.createDelegate
(this, this.onFailureMethod));
}
function onSuccessMethod(sender, args){
alert('web title:' + web.get_title() + '\n ID:' + web.get_id
());
}
function onFailureMethod(sender, args){
alert('request failed' + args.get_message
() + '\n' + args.get_stackTrace());
}
</script>

我认为我唯一要做的就是弄清楚如何获取当前项目,以便我可以为该特定项目设置剩余时间。你知道怎么做吗?我觉得这么接近吗? 再次感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

使用javascript访问SharePoint时,您使用的是ECMA客户端对象模型。我没有使用07的客户端对象模型,但我已经为'10,并且马上可以告诉您发布的代码在sp10中不起作用。至少在sp10 com中,每次获取SharePoint对象的新实例(list,web,listItem,column等)时,都需要将该项设置为本地上下文,然后通过异步对服务器加载上下文方法。只有在那之后,才能访问所需引用对象中的字段。如果你不清楚,请告诉我。以下是一些示例代码:http://pastebin.com/3amgaEhv

编辑: 至于更新列表项,我刚刚找到此链接:http://sprider.org/2011/12/13/sharepoint-ecmascript-to-adddeleteupdateget-list-items/