4

InternalName を使用して SharePoint リストからアイテムを読み込むにはどうすればよいですか? 私の知る限り、次のように Id または Title を使用して取得できます。

var clientContext = new SP.ClientContext('/News/');
var web = clientContext.get_web();
var list = web.get_lists().getById("{1DBA9283-0AFA-4FA1-9BBA-70D8D190971F}");
...
4

4 に答える 4

2

リストのタイトルが変更されても変更されない ListUrl を使用してリストを取得することを常にお勧めします。

于 2012-01-09T09:28:36.450 に答える
2

いいえ、CSOM は、ID またはタイトルによってリストを照会するメソッドのみを提供します。

http://msdn.microsoft.com/en-us/library/ee549620.aspxを参照してください。

SharePoint リスト スキーマは、現時点では InternalNames を提供していません。スキーマの説明http://msdn.microsoft.com/en-us/library/ms415091.aspxを参照してください

トルステン

于 2012-01-08T12:51:19.117 に答える
1

それを意味しているかどうかはわかりませんが、JavaScript ファイル内で、これらの 3 行を最初に宣言すると、オブジェクト モデルを使用できます。

/// <reference name="MicrosoftAjax.js" />
/// <reference path="file://C:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/14/TEMPLATE/LAYOUTS/SP.core.debug.js" />
/// <reference path="file://C:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/14/TEMPLATE/LAYOUTS/SP.debug.js" />

これは関連するコードであり、{SelectedItem} などを呼び出すことなく動作します。

var items = SP.ListOperation.Selection.getSelectedItems();
var listID = SP.ListOperation.Selection.getSelectedList();

これにより、クライアント オブジェクト モデルの (パーツ) が読み込まれるので、そのまま続行できると思います。これは IntelliSense でサポートされているためです。

Edit2: JavaScriptのみでリストを取得して使用するもう1つの方法は、

var web;  
var context;  
var listTitle = "ListName";  

function InitiateThisScript(itemId) {   
    context = new SP.ClientContext.get_current();  
    web = context.get_web();  
    list = web.get_lists().getByTitle(listTitle);  
    item = list.getItemById(itemId);  
    context.load(web;  
    context.load(list);  
    context.load(item);  
    context.executeQueryAsync(handleItem(item, list));  
}  

この方法では、ボタンを定義した Elements.xml で、それを呼び出す必要があります。

CommandAction="javascript:InitiateThisScript('{SelectedItemId}','');" />

Edit3: セキュリティ チェックなしでこの JavaScript を使用する場合は注意してください。たとえば、このソリューションを 2 つのリストがあるサイトに配信したとします。この JavaScript を使用することを提案した最初のものと、2 つ目のもの。両方のリストに表示されるカスタム ボタンがある場合は、2 番目のリストで作業しますが、ボタンを使用すると、可能な限り最初のリストが起動されます。
コンテンツをクリアするボタンがあり、両方のリストに「タイトル」という列があるとします。2番目のリストにいて、最初のリストよりも「タイトルを削除」ボタンを押すと、同じitemIdを持つアイテムのタイトルが削除されます。2 番目のリストでは何も起こりません。
指定されたリストが作業中のリストである場合、これはボタンの可視性とチェックなしから表示されます。

シェギット

編集:タブをスクロールすると、これが見つかりました:EcmaScriptとCOMを使用してフォルダーからアイテムを取得します

于 2012-01-11T15:21:37.833 に答える
0

sharepoint stackexchange で同じ質問をしたのはあなただったと思います。そこでの私の答えにリンクするために、ここにリンクがあります。そこで、「internalName」(url) を使用して共有ポイント リストを取得する方法の完全な例を示します。

于 2012-06-13T21:17:49.897 に答える