2017-02-02 18 views
0

私はCSOMを初めて使いました(これまでSPServicesを使用していました)、リスト項目を取得するための基本を学びたいと考えています。私はたくさんの列を持つリストを持っていますが、そのうちのいくつかは他のリストの参照です。ルックアップ列の1つを取得して印刷しようとすると、[オブジェクトオブジェクト]として出力されます。私は、ルックアップフィールドがルックアップリストからのエントリ全体を含むオブジェクトとして返されていると推測しています。あれは正しいですか?もしそうなら、私はオブジェクトから表示したいフィールドを取得する最も良い方法は何ですか?SharePoint JavaScript CSOM:検索フィールドを処理する最も良い方法は?

<script src="/_layouts/1033/init.js" type="text/javascript"></script> 
<script src="/_layouts/MicrosoftAjax.js" type="text/javascript"></script> 
<script src="/_layouts/sp.core.js" type="text/javascript"></script> 
<script src="/_layouts/sp.runtime.js" type="text/javascript"></script> 
<script src="/_layouts/sp.js" type="text/javascript"></script> 
<script type="text/javascript" src="../SiteAssets/js/jquery-1.12.3.min.js"></script> 

<SCRIPT type=text/javascript> 
$(document).ready(function() { 

function GetListItemsFromSPList(listId) { 
    var context = new SP.ClientContext.get_current(); 
    var web = context.get_web(); 
    var list = web.get_lists().getById(listId); 
    var query = SP.CamlQuery.createAllItemsQuery(); 
    var allItems = list.getItems(query); 
    context.load(allItems, 'Include(Id, ContractType)'); 
    context.executeQueryAsync(Function.createDelegate(this, function() { onQuerySuccess(allItems); }), 
     Function.createDelegate(this, this.onQueryFailed)); 
} 

function onQuerySuccess(allItems) { 
    var listItemInfo = ''; 
    var ListEnumerator = allItems.getEnumerator(); 
    while (ListEnumerator.moveNext()) { 
     var currentItem = ListEnumerator.get_current(); 
     listItemInfo += '\nID: ' + currentItem.get_id() + 
     '\nContractType: ' + currentItem.get_item('ContractType'); 

    } 

    alert(listItemInfo.toString()); 
} 
function onQueryFailed(sender, args) { 
    alert('Error: ' + args.get_message() + '\n' + args.get_stackTrace()); 
} 

var listId = "{STRING-OF-LISTID-CHARACTERS}"; 
GetListItemsFromSPList(listId); 

}); 

</SCRIPT> 

警告プリントアウト: ID:以下自分のコード1参照 ContractType:[対象オブジェクト]

答えて

1

ルックアップフィールドを格納するには、オブジェクト(例えば5; #someValue)は、2つの特性を有します

  1. 参照ID()
  2. ルックアップ値(someValue

下記の方法で参照値を取得してください。

var lookupObject = oListItem.get_item('lookupFieldName'); 
var lookupValue = lookupObject.get_lookupValue(); 
var lookupId = lookupObject.get_lookupId(); 
関連する問題