在线获取列表共享点中的选定项目

时间:2015-08-05 12:46:56

标签: javascript sharepoint sharepoint-online

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

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

然而,当我使用

items[i].id

返回所选项目的所有ID

Titel列怎么回事?

这是我的代码

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);

    });

}

2 个答案:

答案 0 :(得分:2)

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

  • key从零开始的整数值
  • value是一个包含两个属性id和}的对象 fsObjType,其中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());
});

答案 1 :(得分:0)

我猜get_item()只接受&#34; StaticName&#34;而不是本地化的显示名称,所以我建议尝试

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