如何从javascript中的SPListItemCollection获取ID?

时间:2012-04-17 12:46:05

标签: javascript sharepoint-2010

我有一个Sharepoint 2010列表。每个项目可以在第二个列表中具有“相关项目”(“扩展”)。 我使用以下代码来确定相关项是否存在(使用list.getItems)。

如果确实存在,我想读取该项目的ID(来自“listCollection”)并使用它来打开该项目的显示形式。但是如何从listCollection中的对象获取项目的ID?

    var listCollection;
    function getExtended() {
        try {
            var context = new SP.ClientContext.get_current();
            var web = context.get_web();
            var list = web.get_lists().getByTitle('Extended');
            var query = '<View Scope=\'RecursiveAll\'>'+
                            '<Query>'+
                                '<Where>'+
                                '<Contains>'+
                                    '<FieldRef Name=\'MainId\'/>' +
                                    '<Value Type=\'Integer\'>' + GetId() +'</Value>'+
                                '</Contains>'+
                                '</Where>'+
                            '</Query>'+
                                 '</View>';
            var camlQuery = new SP.CamlQuery();
            camlQuery.set_viewXml(query);

            this.listCollection= list.getItems(camlQuery);
            context.load(this.listCollection, 'Include(MainId, Status, ID)');
            context.executeQueryAsync(Function.createDelegate(this, this.listReceived), Function.createDelegate(this, this.failed));
        }
        catch (e) {
            alert(e);
        }
    }

    function listReceived() {

                   var count=this.listCollection.get_count();
            if (count==0){
                $("#extendButton").html("<input type='button' onclick='NewExt()' value='Create new extended'/>");
            } else {
                $("#extendButton").html("<button>Show extended</button>");
            }

    }

1 个答案:

答案 0 :(得分:0)

重新阅读我的问题很有意思,并不完全清楚我在问自己。但我最后使用的代码只是:

var listItemEnumerator = this.listCollection.getEnumerator();

while (listItemEnumerator.moveNext()) {    
      var oListItem = listItemEnumerator.get_current();
      childId= oListItem.get_item('ID');
} 

至少工作,即使我以过于复杂的方式处理(单项)列表。