1

上周我正在寻求帮助,以获得为 SharePoint 2007 制作的用于 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>

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

感谢大家的任何回复。

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

<

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>

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

4

1 回答 1

0

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

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

于 2012-08-23T21:06:39.603 回答