Pro SharePoint with JQuery笔记1

加载JQuery:

将JS文件加载到SharePoint环境中的方法


SharePoint Client Object Model基础:

1. 使用Client Object Model之前需要加载sp.js文件,加载方法:

SharePoint 2010:

$(document).ready(function(){
    ExecuteOrDelayUntilScriptLoaded(MyFunction, "sp.js");
});

function MyFunction(){ ... }

SharePoint 2013:

$(document).ready(function(){
    SP.SOD.executeFunc("sp.js", "SP.ClientContext", MyFunction);
});

function MyFunction(){ ... }

2. 使用ClientContext对象获取当前SharePoint信息:

     获取当前ClientContext对象:

var context = new SP.ClientContext.get_current();
     获取当前web对象:

var web = context.get_web();
context.load(web);
context.executeQueryAsync(SucceedFunction, FailedFunction); //执行异步查询获取web的信息,SucceedFunction和FailedFunction是回调函数。
     获取title为“abc”的列表:

var web = context.get_web();
var list = web.get_lists().getByTitle("abc");
context.load(list);
context.executeQueryAsync(SucceedFunction, FailedFunction); //执行异步查询获取list的信息
     获取id为1的item:

var item = list.getItemById("1");
     获取所有的item:

var web = context.get_web();
var list = web.get_lists().getByTitle("abc");
var allItems = list.getItems("");
context.load(allItems, 'include(ID, Title)'); //使用include指定获取的field信息
context.executeQueryAsync(SucceedFunction, FailedFunction); //执行异步查询获取所有的item
     遍历所有item:

var itemCollection = allItems.getEnumerator();
while(itemCollection.moveNext())
{
    var myItem = itemCollection.get_current();
    ... ...
}
     获取item的field值:

var title = myItem.get_item('Title'); //参数是field的internal name
     更新item的field值:

myItem.set_item('Title', 'new title');
myItem.update();
     删除一个item:

myItem.deleteObject();
context.executeQueryAsync(SucceedFunction, FailedFunction);
      处理异步查询的异常:

function FailedFunction(sender, args){ //使用args参数获得具体的错误信息
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
     向list中添加一条item:

    var context = new SP.ClientContext.get_current();
    var web = context.get_web();
    var list = web.get_lists().getByTitle("abc");
    var listItemInfo = new SP.ListItemCreationInformation(); //创建一个ListItemCreationInformation对象
    var listItem = list.addItem(listItemInfo); //添加item
    listItem.set_item('Title', 'new item'); //设置item的title
    listItem.update();
    context.executeQueryAsync(SucceedFunction, FailedFunction); //执行异步查询,在list中创建item

     使用ajax调用web service,获取“Task”列表中的items,并且遍历显示Title字段:

function LoadItems() {
    var taskUrl = "/_vti_bin/ListData.svc/Task/"; //如果Task列表位于子站点sub中,这里需要使用/sub/_vti_bin/ListData.svc/Task/

    $.ajax({
        type: 'GET', 
        url: taskUrl,
        dataType: 'json',
        success: function(data) { //成功的返回值是data对象,其中的d的results属性包含item
            $.each(data.d.results, function(i, result) {
                alert('Title: '+result.Title);
                });
            });
        },
        error: function() {
            alert("error");
        }
        });
}

     使用ajax的getJSON方法获取一条item的数据:

function LoadItem(id) {
    var itemUrl = "/_vti_bin/ListData.svc/Task(" + id + ")";
    $.getJSON(itemUrl, function(data) {
        alert($(data.d.Title));
    });
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值