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

  • 相关阅读:
    07 JavaWeb
    06 XML编程(CRUD)
    05 XML
    04 DOM一窥
    03 Javascript初识
    02 CSS/javaScript
    01 HTML基础
    09_IO流
    08_集合概述
    07_基本数据类型和包装类
  • 原文地址:https://www.cnblogs.com/windy2008/p/1897503.html
Copyright © 2011-2022 走看看