2012-01-03 8 views
0

JavaScriptを使用してSharePointリストアイテムを取得する方法を教えてもらえますか?JavaScriptを使用して複数のサイトコレクションからSharePointリストアイテムを取得する方法

2つのサイトコレクションsite1とsite2があります。私はsite1アプリケーションで作業しており、site2のリスト項目を取得したいと思います。どうすればこれを達成できますか?私を助けてください。それは、「リストは存在しません」などのメッセージを示し

var ctx; 
var listItem; 
var title; 
var col1; 
var col2; 

function SetItemValue(listItemId, listId, siteUrl, webUrl) { 
    ctx = new SP.ClientContext.get_current(); 
    var web; 
    var site = ctx.get_site(siteUrl);//Here passing the second sitecollection url  
    if (webUrl != undefined && webUrl != '') 
     web = site.openWeb(webUrl); 
    else 
     web = site.openWeb(''); 
    var list = web.get_lists().getById(listId);//Here passing the valid guid of list id 
    listItem = list.getItemById(listItemId); 
    ctx.load(list); 
    ctx.load(listItem); 
    ctx.executeQueryAsync(OnListLoaded); 

    list.update(); 
    web.update(); 
    ctx.load(web); 
} 

function OnListLoaded() { 
    listItem.set_item(col1, 'Hi'); 
    listItem.set_item(col2, 'Test'); 
    listItem.update(); 

    ctx.load(listItem); 
    ctx.executeQueryAsync(OnListUpdated, OnError); 
} 

function OnListUpdated(args) { 
} 

function OnError(sender, args) { 
    alert(args.get_message()); 
} 

この

は私がJavaScriptの側に使用していたコードです。私は最初のサイトコレクションからリストをチェックすると思います。そのため、このメッセージがポップアップします。誰も私がこれを解決するのを助けることができますか?

おかげで、

RASU

答えて

0

あなたは、特定のURLのコンテキストを作成するために、 "コンストラクタ" new ClientContext(serverAbsoluteUrl)を使用することができます。

function SetItemValue(listItemId, listId, siteUrl, webUrl) { 
    ctx = new SP.ClientContext(siteUrl); 
    var web; 
    var site = ctx.get_site(siteUrl);//Here passing the second sitecollection url  
    if (webUrl != undefined && webUrl != '') 
     web = site.openWeb(webUrl); 

    // ... 
+0

は、それがクロスドメインの呼び出しはありませんか? JSOMでは不可能だと思いますが、ここではSharePoint Appのモーダルを使用する必要があります。 http://blogs.msdn.com/b/officeapps/archive/2012/11/29/solving-cross-domain-problems-in-apps-for-sharepoint.aspx – Ali

関連する問題