获取在线sharepoint列表中的选定项目

Get Selected items in a list sharepoint online

本文关键字:项目 在线 sharepoint 列表 获取      更新时间:2023-09-26

我试图创建一个函数,检索列表中所有选定的项目在一个特定的列,但我一直得到以下错误:

items[i].get_item["Titel"] is not a function

但是当我使用

items[i].id

返回所选项的所有id

为什么不能按列标题返回?

我的代码

function GetSelectedItemsID() {
    SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function(){
        var ctx = SP.ClientContext.get_current();
        var items = SP.ListOperation.Selection.getSelectedItems(ctx);
        var myItems = '';
        var i;
         for (i in items)
         {
             myItems += ' ' + items[i].get_item("Titel");
         }

         window.alert(myItems);
    });
}

SP.ListOperation.Selection.getSelectedItems()方法返回键/值集合,其中包含被选中的列表项,

  • key从零开始的整数值
  • value是包含两个属性的对象,idfsObjType,其中id为列表项的ID, fsObjType为项的类型:0 =列表项或文件,1=文件夹

由于您的目标是检索选定的列表项,下面的示例演示了如何实现它:

从列表

获取选定的列表项(SP.ListItem集合)
function getSelectedItems(success,error)
{
    var context = SP.ClientContext.get_current();
    var listId = SP.ListOperation.Selection.getSelectedList(); //selected list Id
    var selectedItemIds = SP.ListOperation.Selection.getSelectedItems(context); //selected Items Ids
    var list = context.get_web().get_lists().getById(listId);
    var listItems = [];
    for (idx in selectedItemIds)
    {
        var item = list.getItemById(parseInt(selectedItemIds[idx].id));
        listItems.push(item);
        context.load(item);
    }
    context.executeQueryAsync(
       function() {
          success(listItems);       
       },
       error); 
}
//Usage
getSelectedItems(function(items){
    for (var i =0 ; i < items.length;i++)
    {
       console.log(items[i].get_item('Title'));  
    }  
},function(sender,args){
    console.log('An error occured: ' + args.get_message());
});

我猜get_item()只需要"StaticName"而不是本地化的显示名称,所以我建议尝试

items[i].get_item("Title");