将Sharepoint 2010列表项从一个文件夹移动到另一个文件夹

时间:2017-03-31 05:47:05

标签: javascript sharepoint-2010

所以我试图将列表项从一个文件夹移动到另一个文件夹。我尝试使用我发现的代码(代码源的链接如下)。我不断得到“价值不在预期范围内”。错误,我不知道为什么我得到它。有人可以向我解释这个问题。谢谢!

var listTitle = "Requests"; //list title
var itemId = 1;  //list item id
var targetFolderUrl = "/Lists/Requests/Archive";  //target folder server relative url

var ctx = SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var item = list.getItemById(itemId);
ctx.load(item,['FileRef','FileDirRef']);
ctx.executeQueryAsync(
   function(){
       var fileUrl = item.get_item('FileRef');
       var file = ctx.get_web().getFileByServerRelativeUrl(fileUrl);
       var targetfileUrl = fileUrl.replace(item.get_item('FileDirRef'),targetFolderUrl); 
       file.moveTo(targetfileUrl, SP.MoveOperations.overwrite);
       ctx.executeQueryAsync(
          function(){
             console.log('List item has been moved');   
          },
          logError
       )
   },
   logError);


function logError(sender,args){
      console.log(args.get_message()); 
}

这是我的实际代码。

var targetFolderUrl = "/Lists/" + COMM.PROPERTY.SUSAR.LIST + "/ProductID_64";  //target folder server relative url

            var ctx = SP.ClientContext.get_current();
            var list = ctx.get_web().get_lists().getByTitle(COMM.PROPERTY.SUSAR.LIST);
            var item = list.getItemById(66);
            ctx.load(item, ['FileRef', 'FileDirRef']);
            ctx.executeQueryAsync(
               function () {
                var fileUrl = item.get_item('FileRef');
                var file = ctx.get_web().getFileByServerRelativeUrl(fileUrl);
                var targetfileUrl = fileUrl.replace(item.get_item('FileDirRef'), targetFolderUrl);
                file.moveTo(targetfileUrl, SP.MoveOperations.overwrite);
                ctx.executeQueryAsync(
                   function () {
                    console.log('List item has been moved');
                   },
                   logError
                )
               },
               logError);


            function logError(sender, args) {
                console.log(args.get_message());
            }

How to move list item into folder in Sharepoint online

1 个答案:

答案 0 :(得分:0)

如果您想在没有代码的情况下执行此操作,则可以使用2010工作流程。如果当前项目等于X,则将当前项目中的项目复制到NewList,然后删除当前项目中的项目。请务必选择2010年工作流程而非2013年。此外,您可能需要设置何时创建新项目或将其更改为触发器。我有一个接收列表,查看参数,并根据参数将其发送到许多潜在列表之一;所以我把它设置为创建或更改。