zoukankan      html  css  js  c++  java
  • 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

    出处: http://www.cnblogs.com/windy2008

  • 相关阅读:
    Sum Root to Leaf Numbers
    Sum Root to Leaf Numbers
    Sort Colors
    Partition List
    Binary Tree Inorder Traversal
    Binary Tree Postorder Traversal
    Remove Duplicates from Sorted List II
    Remove Duplicates from Sorted List
    Search a 2D Matrix
    leetcode221
  • 原文地址:https://www.cnblogs.com/windy2008/p/1897503.html
Copyright © 2011-2022 走看看