私は ECMAScript と共有ポイントの開発が初めてです。ECMAScript を使用して 1 つのリストを作成する必要がある小さな要件があります。作成中に、リストがサイトに既に存在するかどうかを確認する必要があります。リストが存在しない場合は、新しいリストを作成する必要があります。
質問する
759 次
2 に答える
1
そのためにJSOMまたはSOAPサービスを利用できます。以下にJSOM
ソリューションを示します。
SharePoint 2010 で JSOM を使用してリストを作成する方法
function createList(siteUrl,listTitle,listTemplateType,success,error) {
var context = new SP.ClientContext(siteUrl);
var web = context.get_web();
var listCreationInfo = new SP.ListCreationInformation();
listCreationInfo.set_title(listTitle);
listCreationInfo.set_templateType(listTemplateType);
var list = web.get_lists().add(listCreationInfo);
context.load(list);
context.executeQueryAsync(
function(){
success(list);
},
error
);
}
リストが Web に存在するかどうかを判断する方法
残念ながら、JSOM API には、リストが存在するかどうかを判断するための「組み込み」メソッドは含まれていませんが、次のアプローチを使用できます。
1 つの解決策は、Web オブジェクトにリスト コレクションをロードし、リスト コレクションを繰り返し処理して特定のリストを見つけることです。
context.load(web, 'Lists');
解決
次の例は、JSOM を介して List が存在するかどうかを判断する方法を示しています。
function listExists(siteUrl,listTitle,success,error) {
var context = new SP.ClientContext(siteUrl);
var web = context.get_web();
context.load(web,'Lists');
context.load(web);
context.executeQueryAsync(
function(){
var lists = web.get_lists();
var listExists = false;
var e = lists.getEnumerator();
while (e.moveNext()) {
var list = e.get_current();
if(list.get_title() == listTitle) {
listExists = true;
break;
}
}
success(listExists);
},
error
);
}
使用法
var webUrl = 'http://contoso.intarnet.com';
var listTitle = 'Toolbox Links';
listExists(webUrl,listTitle,
function(listFound) {
if(!listFound){
createList(webUrl,listTitle,SP.ListTemplateType.links,
function(list){
console.log('List ' + list.get_title() + ' has been created succesfully');
},
function(sender, args) {
console.log('Error:' + args.get_message());
}
);
}
else {
console.log('List with title ' + listTitle + ' already exists');
}
}
);
参考文献
于 2014-08-30T19:05:39.907 に答える