ECMAScript对列表项的增删改查

一、新增

代码
< script type = " text/javascript " >

var siteUrl = ' /sites/MySiteCollection ' ;

function createListItem() {

var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle( ' Announcements ' );

var itemCreateInfo = new SP.ListItemCreationInformation();
this .oListItem = oList.addItem(itemCreateInfo);

oListItem.set_item(
' Title ' , ' My New Item! ' );
oListItem.set_item(
' Body ' , ' Hello World! ' );

oListItem.update();

clientContext.load(oListItem);

clientContext.executeQueryAsync(Function.createDelegate(
this , this .onQuerySucceeded), Function.createDelegate( this , this .onQueryFailed));
}

function onQuerySucceeded() {

alert(
' Item created: ' + oListItem.get_id());
}

function onQueryFailed(sender, args) {

alert(
' Request failed. ' + args.get_message() + ' \n ' + args.get_stackTrace());
}

< / script>

 

二、查询 

代码
var product;
function getProductById(productId) {
try {
var context = new SP.ClientContext.get_current();
var web = context.get_web();
var list = web.get_lists().getByTitle( ' product ' );
this .product = list.getItemById(productId);
context.load(product,
' ProductName ' , ' ProductDescription ' , ' ProductType ' , ' LaunchDate ' , ' AvailableQuantity ' );
context.executeQueryAsync(Function.createDelegate(
this , this .productReceived), Function.createDelegate( this , this .failed));
}
catch (e) {
alert(e);
}
}

 

代码
var productcollection;
function getProducts(title) {
try {
var context = new SP.ClientContext.get_current();
var web = context.get_web();
var list = web.get_lists().getByTitle( ' product ' );
var query = ' <View Scope=\ ' RecursiveAll\ ' > ' +
' <Query> ' +
' <Where> ' +
' <Contains> ' +
' <FieldRef Name=\ ' ProductName\ ' /> ' +
' <Value Type=\ ' Text\ ' > ' + title + ' </Value> ' +
' </Contains> ' +
' </Where> ' +
' </Query> ' +
' </View> ' ;
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml(query);

this .productcollection = list.getItems(camlQuery);
context.load(
this .productcollection, ' Include(ProductName, ProductDescription, ProductType, LaunchDate, AvailableQuantity) ' );
context.executeQueryAsync(Function.createDelegate(
this , this .productsReceived), Function.createDelegate( this , this .failed));
}
catch (e) {
alert(e);
}
}
function productsReceived() {
alert(
' got products ' );
prcessProducts(
this .productcollection);
}
function failed(sender, args) {
alert(
' failed. Message: ' + args.get_message());
}

 

   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_displayName();
    }
    alert(listItemInfo.toString());
  }

  function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
  }
View Code

 

function retrieveListItems() {
    var clientContext = new SP.ClientContext('/sites/MySiteCollection');
    var oList = clientContext.get_web().get_lists().getByTitle('My List');
        
    var camlQuery = new SP.CamlQuery();
    camlQuery.set_viewXml('<View><Query><Where><Leq>' + 
        '<FieldRef Name=\'ID\'/><Value Type=\'Number\'>100</Value>' + 
        '</Leq></Where></Query><RowLimit>50</RowLimit></View>');

    this.collListItem = oList.getItems(camlQuery);        
    clientContext.load(collListItem, 'Include(Id, DisplayName)');
        
    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_displayName();
    }
    alert(listItemInfo.toString());
}

function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
View Code

 

三、删除

代码
var siteUrl = ' /sites/MySiteCollection ' ;

function deleteListItem() {

this .itemId = 2 ;

var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle( ' Announcements ' );

this .oListItem = oList.getItemById(itemId);
oListItem.deleteObject();
// Update

clientContext.executeQueryAsync(Function.createDelegate(
this , this .onQuerySucceeded), Function.createDelegate( this , this .onQueryFailed));
}
function onQuerySucceeded() {
alert(
' Item deleted: ' + itemId);
}
function onQueryFailed(sender, args) {
alert(
' Request failed. ' + args.get_message() + ' \n ' + args.get_stackTrace());
}

 

四、CAML查询 

function retrieveListItemsInclude(siteUrl) {
    var clientContext = new SP.ClientContext(siteUrl);
    var oList = clientContext.get_web().get_lists().getByTitle('Announcements');

    var camlQuery = new SP.CamlQuery();
    camlQuery.set_viewXml('<View><RowLimit>100</RowLimit></View>');
    this.collListItem = oList.getItems(camlQuery);

    clientContext.load(
        collListItem, 
        'Include(Id, DisplayName, HasUniqueRoleAssignments)'
    );
    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_displayName() + 
            '\nUnique role assignments: ' + 
            oListItem.get_hasUniqueRoleAssignments();
    }

    alert(listItemInfo.toString());
}

function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + 
        '\n' + args.get_stackTrace());
}
View Code

 

 五、获取附件

The attachment files are stored in the list as the structure as follows:

List rootfoler à ‘attachment’ folder à ‘Item Id’ folder à attachments.

For example, the path of the attachment in my server  likes this: http://<servername>/lists/listtest/Attachments/1/doctext.docx .

 

So the main logic of my solution is:

1.        Get the folder of the url likes : var attachmentFolder=web.getFolderByServerRelativeUrl('Lists/City/Attachments/'+itemId);

2.        Loop all the files in the folder, and get the path of them using get_serverRelativeUrl ;

 

   ExecuteOrDelayUntilScriptLoaded(getWebProperties, "SP.js"); 

                

   var attachmentFiles; 

function getWebProperties() { 

var itemId=2; 

var ctx = new SP.ClientContext.get_current(); 

var web = ctx.get_web(); 

var attachmentFolder=web.getFolderByServerRelativeUrl('Lists/City/Attachments/'+itemId); 

   attachmentFiles= attachmentFolder.get_files(); 

   ctx.load(attachmentFiles); 

                

        ctx.executeQueryAsync(Function.createDelegate(this,this.onSuccess),Function.createDelegate(this,this.onFailed)); 

} 

  

    function onSuccess(sender, args) {                                      

                                var i=0; 

                                for(var file in attachmentFiles) 

                                {                              

                                                alert(attachmentFiles.itemAt(i).get_serverRelativeUrl()); 

                                                i++; 

                                } 

    } 

  

    function onFailed(sender, args) { 

        alert("sorry!"); 

    } 
View Code

 六、更新

 item = itemEnumerator.get_current();
            var itemID = item.get_item("ID");
            var visitCounter = parseInt(item.get_item("VisitTimes"));
            visitCounter++;
            ShowCounterOnHome(visitCounter);

            var updateItem = countList.getItemById(itemID);
            updateItem.set_item('VisitTimes', visitCounter);
            updateItem.update();
            curContext.executeQueryAsync();
View Code

 七、文件夹创建

function createFolder() {

    targetList = list.getByTitle("MyDocumentLibrary");

    itemCreation = new SP.ListItemCreationInformation();

    itemCreation.set_underlyingObjectType(SP.FileSystemObjectType.folder);

    itemCreation.set_leafName("MyCustomFolder");

    var folderItem = targetList.addItem(itemCreation);

    folderItem.update();

    context.load(folderItem);

    context.executeQueryAsync(onFolderCreationSuccess, onFolderCreationFail);

 } 
View Code

 

 

 

 

 

 

转载于:https://www.cnblogs.com/windy2008/archive/2010/12/06/1897503.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值