我试图创建一个函数来检索特定列中列表中的所有选定项目但是我一直收到以下错误:
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);
});
}
答案 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");