2012-04-17 41 views
0

我有一個Sharepoint 2010列表。每個項目可以在第二個列表(「擴展」)中有一個「相關項目」。 我使用下面的代碼來確定相關項是否存在(使用list.getItems)。如何從JavaScript中的SPListItemCollection獲取ID?

如果確實存在,我想讀取該項目的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>"); 
      } 

    } 

回答

0

重新閱讀我的問題並不完全清楚我在問自己什麼。但我最終使用的代碼很乾脆:

var listItemEnumerator = this.listCollection.getEnumerator(); 

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

其中至少工作過,即使我在處理一個過於複雜的方式(一個項目)列表。