簡體   English   中英

如何使用JavaScript在SharePoint列表中批量創建項目?

[英]How to bulk create items in SharePoint list using javascript?

我在SharePoint Online中有一個具有自定義HTML表單的列表。 該表格具有以下結構:

國家:

顏色:

類型:

(它們在表/網格視圖中,並且可重復/很多)名稱:姓氏:性別:年齡:

我的目標是在表格/網格視圖中最多包含40行,以便人們可以添加記錄,並且一旦他們單擊“保存”按鈕,便會為該行中的每個條目創建一個項目,其中包含來自“國家/地區”,“顏色”和“類型”的其他附加信息與每個記錄一起添加。

因此最終結果將是為每行創建一個SharePoint列表項。例如​​:國家/地區,顏色,類型,名稱,姓氏,性別,年齡國家,顏色,類型,名稱,姓氏,性別,年齡

我可以使用下面的腳本創建項目,但是試圖弄清楚如何遍歷表/ gridview中的所有項目,並為每個行使用相同的腳本創建一個項目,並且在每一行的列中都有數據:

<script>

var siteUrl = 'http://example.org';

function createListItem() {

    var clientContext = new SP.ClientContext(siteUrl);
    var oList = clientContext.get_web().get_lists().getByTitle('Testing1');

    var itemCreateInfo = new SP.ListItemCreationInformation();
    this.oListItem = oList.addItem(itemCreateInfo);

    oListItem.set_item('Title', 'My New Item!');

    oListItem.update();
    clientContext.load(oListItem);

    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
    alert('Item created: ' + oListItem.get_id());
}
function onQueryFailed(sender, args) {
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
</script><button onclick="createListItem();">Try it</button> 

任何幫助表示贊賞

您可以嘗試以下腳本,請注意,這些項目已加載到ClientContext堆棧中並在一次調用中執行。 為我工作了大約6個項目。 如果您遇到40個項目一起執行的任何性能問題,則可以相應地修改代碼以對每個項目執行,或者改為對每10個項目執行clientcontext.executequeryasync。

 <script> var siteUrl = 'Your Site URL'; function createListItem() { var clientContext = new SP.ClientContext(siteUrl); var oList = clientContext.get_web().get_lists().getByTitle('testGodwin'); var cntInt; var itemCreateInfo; // get the Table var table = document.getElementById('tblOne'); var rowLength = table.rows.length; //Loop through each row for (cntInt = 0; cntInt < rowLength; cntInt++) { // Set the column values here - example considers first cell holds Title value var row = table.rows[cntInt]; var titleVal = row.cells[0] ; // Create the item and Load into Stack itemCreateInfo = new SP.ListItemCreationInformation(); var oListItem = oList.addItem(itemCreateInfo); oListItem.set_item('Title', titleVal); oListItem.update(); clientContext.load(oListItem); } clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed)); } function onQuerySucceeded() { alert('Item created: ' + oListItem.get_id()); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\\n' + args.get_stackTrace()); } </script><button onclick="createListItem();">Try it</button> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM