2015-05-20 102 views
0

我試圖讓使用JavaScript,jQuery和Ajax的SharePoint列表內的新項目新項目,這是我的函數:SharePoint列表通過的SoapEnvelope

function CreateItem(Title) { 
var soapEnv =   
"<soapenv:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +   
"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " +   
"xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">" +  
"<soapenv:Body>" +       
"<UpdateListItems xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\">" +  
"<listName>listName</listName>" +     
"<updates>" +       
"<Batch OnError=\"Continue\">" +   
"<Method ID=\"1\" Cmd=\"New\">" +    
"<Field Name=\"ID\">New</Field>" +    
"<Field Name=\"Title\">" + Title + "</Field>" +  
"</Method>" +      
"</Batch>" +       
"</updates>" +       
"</UpdateListItems>" +    
"</soapenv:Body>" +     
"</soapenv:Envelope>";    
$.ajax({  
url: "http://URL/_vti_bin/lists.asmx", 
type: "POST",       
dataType: "xml",       
data: soapEnv,       
beforeSend: function (xhr) {    
xhr.setRequestHeader("SOAPAction",   
"http://schemas.microsoft.com/sharepoint/soap/UpdateListItems"); 
},       
complete: processCreateResultSuccess,  
contentType: "text/xml; charset=\"utf-8\"",  
error: processCreateResultError    
});      

}

這部分工作正常,我可以用函數中傳遞的標題創建一個新項目。但我也想說明添加到加時,我創建這個項目,並且:

"<Field Name=\"Description\">" + "a description" + "</Field>" + 

不工作,這是爲什麼,我應該怎麼辦呢?

+0

我使用這種方法是因爲它來自Apache Cordova應用程序,這是我使它工作的唯一方式(至少有標題),我怎麼能看到它是否是內部名稱?我自己做了這個領域,並把它命名爲'Description' – klskl

+0

沒關係!它的工作,謝謝!我做了一個關於如何檢索內部名稱的快速谷歌,事實證明這是'DeviationDescription',因爲它是Deviation列表的一部分,如果您將您的評論作爲答案,我會接受它。 – klskl

回答

0

您是否檢查過該字段是否存在並且您使用的是其內部名稱?另一件事,我很好奇你爲什麼使用這種方法?你不能使用客戶端對象模型來執行這些操作嗎?

相關問題