一、新增
代码
<script type="text/javascript">
var siteUrl ='/sites/MySiteCollection';
function createListItem() {
var clientContext =new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('Announcements');
var itemCreateInfo =new SP.ListItemCreationInformation();
this.oListItem = oList.addItem(itemCreateInfo);
oListItem.set_item('Title', 'My New Item!');
oListItem.set_item('Body', 'Hello World!');
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>
var siteUrl ='/sites/MySiteCollection';
function createListItem() {
var clientContext =new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('Announcements');
var itemCreateInfo =new SP.ListItemCreationInformation();
this.oListItem = oList.addItem(itemCreateInfo);
oListItem.set_item('Title', 'My New Item!');
oListItem.set_item('Body', 'Hello World!');
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>
二、查询
代码
var product;
function getProductById(productId) {
try {
var context =new SP.ClientContext.get_current();
var web = context.get_web();
var list = web.get_lists().getByTitle('product');
this.product = list.getItemById(productId);
context.load(product, 'ProductName', 'ProductDescription', 'ProductType', 'LaunchDate', 'AvailableQuantity');
context.executeQueryAsync(Function.createDelegate(this, this.productReceived), Function.createDelegate(this, this.failed));
}
catch (e) {
alert(e);
}
}
function getProductById(productId) {
try {
var context =new SP.ClientContext.get_current();
var web = context.get_web();
var list = web.get_lists().getByTitle('product');
this.product = list.getItemById(productId);
context.load(product, 'ProductName', 'ProductDescription', 'ProductType', 'LaunchDate', 'AvailableQuantity');
context.executeQueryAsync(Function.createDelegate(this, this.productReceived), Function.createDelegate(this, this.failed));
}
catch (e) {
alert(e);
}
}
代码
var productcollection;
function getProducts(title) {
try {
var context =new SP.ClientContext.get_current();
var web = context.get_web();
var list = web.get_lists().getByTitle('product');
var query ='<View Scope=\'RecursiveAll\'>'+
'<Query>'+
'<Where>'+
'<Contains>'+
'<FieldRef Name=\'ProductName\'/>'+
'<Value Type=\'Text\'>'+ title +'</Value>'+
'</Contains>'+
'</Where>'+
'</Query>'+
'</View>';
var camlQuery =new SP.CamlQuery();
camlQuery.set_viewXml(query);
this.productcollection = list.getItems(camlQuery);
context.load(this.productcollection, 'Include(ProductName, ProductDescription, ProductType, LaunchDate, AvailableQuantity)');
context.executeQueryAsync(Function.createDelegate(this, this.productsReceived), Function.createDelegate(this, this.failed));
}
catch (e) {
alert(e);
}
}
function productsReceived() {
alert('got products');
prcessProducts(this.productcollection);
}
function failed(sender, args) {
alert('failed. Message:'+ args.get_message());
}
function getProducts(title) {
try {
var context =new SP.ClientContext.get_current();
var web = context.get_web();
var list = web.get_lists().getByTitle('product');
var query ='<View Scope=\'RecursiveAll\'>'+
'<Query>'+
'<Where>'+
'<Contains>'+
'<FieldRef Name=\'ProductName\'/>'+
'<Value Type=\'Text\'>'+ title +'</Value>'+
'</Contains>'+
'</Where>'+
'</Query>'+
'</View>';
var camlQuery =new SP.CamlQuery();
camlQuery.set_viewXml(query);
this.productcollection = list.getItems(camlQuery);
context.load(this.productcollection, 'Include(ProductName, ProductDescription, ProductType, LaunchDate, AvailableQuantity)');
context.executeQueryAsync(Function.createDelegate(this, this.productsReceived), Function.createDelegate(this, this.failed));
}
catch (e) {
alert(e);
}
}
function productsReceived() {
alert('got products');
prcessProducts(this.productcollection);
}
function failed(sender, args) {
alert('failed. Message:'+ args.get_message());
}
function onQuerySucceeded(sender, args) { var listItemInfo = ''; var listItemEnumerator = collListItem.getEnumerator(); while (listItemEnumerator.moveNext()) { var oListItem = listItemEnumerator.get_current(); listItemInfo += '\nID: ' + oListItem.get_id() + '\nDisplay name: ' + oListItem.get_displayName(); } alert(listItemInfo.toString()); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
function retrieveListItems() { var clientContext = new SP.ClientContext('/sites/MySiteCollection'); var oList = clientContext.get_web().get_lists().getByTitle('My List'); var camlQuery = new SP.CamlQuery(); camlQuery.set_viewXml('<View><Query><Where><Leq>' + '<FieldRef Name=\'ID\'/><Value Type=\'Number\'>100</Value>' + '</Leq></Where></Query><RowLimit>50</RowLimit></View>'); this.collListItem = oList.getItems(camlQuery); clientContext.load(collListItem, 'Include(Id, DisplayName)'); clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed)); } function onQuerySucceeded(sender, args) { var listItemInfo = ''; var listItemEnumerator = collListItem.getEnumerator(); while (listItemEnumerator.moveNext()) { var oListItem = listItemEnumerator.get_current(); listItemInfo += '\nID: ' + oListItem.get_id() + '\nDisplay name: ' + oListItem.get_displayName(); } alert(listItemInfo.toString()); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
三、删除
代码
var siteUrl ='/sites/MySiteCollection';
function deleteListItem() {
this.itemId =2;
var clientContext =new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('Announcements');
this.oListItem = oList.getItemById(itemId);
oListItem.deleteObject();//Update
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
alert('Item deleted: '+ itemId);
}
function onQueryFailed(sender, args) {
alert('Request failed. '+ args.get_message() +'\n'+ args.get_stackTrace());
}
function deleteListItem() {
this.itemId =2;
var clientContext =new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('Announcements');
this.oListItem = oList.getItemById(itemId);
oListItem.deleteObject();//Update
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
alert('Item deleted: '+ itemId);
}
function onQueryFailed(sender, args) {
alert('Request failed. '+ args.get_message() +'\n'+ args.get_stackTrace());
}
四、CAML查询
function retrieveListItemsInclude(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); var oList = clientContext.get_web().get_lists().getByTitle('Announcements'); var camlQuery = new SP.CamlQuery(); camlQuery.set_viewXml('<View><RowLimit>100</RowLimit></View>'); this.collListItem = oList.getItems(camlQuery); clientContext.load( collListItem, 'Include(Id, DisplayName, HasUniqueRoleAssignments)' ); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded(sender, args) { var listItemInfo = ''; var listItemEnumerator = collListItem.getEnumerator(); while (listItemEnumerator.moveNext()) { var oListItem = listItemEnumerator.get_current(); listItemInfo += '\nID: ' + oListItem.get_id() + '\nDisplay name: ' + oListItem.get_displayName() + '\nUnique role assignments: ' + oListItem.get_hasUniqueRoleAssignments(); } alert(listItemInfo.toString()); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
五、获取附件
The attachment files are stored in the list as the structure as follows:
List rootfoler à ‘attachment’ folder à ‘Item Id’ folder à attachments.
For example, the path of the attachment in my server likes this: http://<servername>/lists/listtest/Attachments/1/doctext.docx .
So the main logic of my solution is:
1. Get the folder of the url likes : var attachmentFolder=web.getFolderByServerRelativeUrl('Lists/City/Attachments/'+itemId);
2. Loop all the files in the folder, and get the path of them using get_serverRelativeUrl ;
ExecuteOrDelayUntilScriptLoaded(getWebProperties, "SP.js"); var attachmentFiles; function getWebProperties() { var itemId=2; var ctx = new SP.ClientContext.get_current(); var web = ctx.get_web(); var attachmentFolder=web.getFolderByServerRelativeUrl('Lists/City/Attachments/'+itemId); attachmentFiles= attachmentFolder.get_files(); ctx.load(attachmentFiles); ctx.executeQueryAsync(Function.createDelegate(this,this.onSuccess),Function.createDelegate(this,this.onFailed)); } function onSuccess(sender, args) { var i=0; for(var file in attachmentFiles) { alert(attachmentFiles.itemAt(i).get_serverRelativeUrl()); i++; } } function onFailed(sender, args) { alert("sorry!"); }
六、更新
item = itemEnumerator.get_current(); var itemID = item.get_item("ID"); var visitCounter = parseInt(item.get_item("VisitTimes")); visitCounter++; ShowCounterOnHome(visitCounter); var updateItem = countList.getItemById(itemID); updateItem.set_item('VisitTimes', visitCounter); updateItem.update(); curContext.executeQueryAsync();
七、文件夹创建
function createFolder() { targetList = list.getByTitle("MyDocumentLibrary"); itemCreation = new SP.ListItemCreationInformation(); itemCreation.set_underlyingObjectType(SP.FileSystemObjectType.folder); itemCreation.set_leafName("MyCustomFolder"); var folderItem = targetList.addItem(itemCreation); folderItem.update(); context.load(folderItem); context.executeQueryAsync(onFolderCreationSuccess, onFolderCreationFail); }