步步高笔记本电脑,步步为营 SharePoint 开发学习笔记系列 十一、SharePoint 对list操作

概要
在sharepoint中的自定义web part会涉及到对list里面的item进行操作,这篇文单将会讲解如何修改list里的item。
 
我们先看一个示例
/// /// /// ///
/// public SPListItemCollection GetSPListItemCollection(string ID) { SPListItemCollection itemCollection = new SPListItemCollection(); SPSecurity.RunWithElevatedPrivileges( delegate { using (SPSite spsite = new SPSite(this.CurrentUrl)) { using (SPWeb spWeb = spsite.OpenWeb()) { SPList listInstance = spWeb.Lists[this.ListName]; SPQuery query = new SPQuery(); query.Query = "" + ID + ""; itemCollection = listInstance.GetItems(query); } } } ); return itemCollection; }
SPSecurity.RunWithElevatedPrivileges()是用来提高操作权限级别来操作站点!
用法:
SPSecurity.RunWithElevatedPrivileges(delegate() {代码});提高权限将是让代码以sharepoint\system所具有的权限来执行!
 
更改指定的item代码
public string AddNewItem() { string retVal = string.Empty; try { SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(SPContext.Current.Web.Url)) { using (SPWeb web = site.OpenWeb()) { SPList list = web.Lists["TEST"]; SPListItem item = list.Items.Add(); item["Title"] = string.Format("Test at {0}", DateTime.Now.ToString()); item.Update(); } } retVal = "operation success!"; }); } catch (Exception ex) { retVal += ex.Message; } return retVal; }
 
 
 
如果修改的不留痕迹,要使用SystemUpdate;
示例如下:
public string AddNewItem() { string retVal = string.Empty; try { SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(SPContext.Current.Web.Url)) { using (SPWeb web = site.OpenWeb()) { SPList list = web.Lists["TEST"]; SPListItem item = list.Items.Add(); item["Title"] = string.Format("Test at {0}", DateTime.Now.ToString()); item.SystemUpdate(); } } retVal = "operation success!"; }); } catch (Exception ex) { retVal += ex.Message; } return retVal; }
 
 
 
在很多时候我们需要设置允许不安全的修改。使用这个AllowUnsafeUpdates.
示例如下:
public string AddNewItem() { string retVal = string.Empty; try { SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(SPContext.Current.Web.Url)) { using (SPWeb web = site.OpenWeb()) { web.AllowUnsafeUpdates = true; SPList list = web.Lists["TEST"]; SPListItem item = list.Items.Add(); item["Title"] = string.Format("Test at {0}", DateTime.Now.ToString()); item.SystemUpdate(); web.AllowUnsafeUpdates = false; } } retVal = "operation success!"; }); } catch (Exception ex) { retVal += ex.Message; } return retVal; }
 
 
在sharepoint里面删除一条item的话可以进行如下操作.
/// /// /// /// private SPList GetCurrentList() { using (SPSite siteCollection = new SPSite(SPContext.Current.Web.Url)) { using (SPWeb web = siteCollection.OpenWeb()) { SPList list = web.Lists[this.ListName]; return list; } } } /// /// /// ///
///
///
public void DeleteItemByIDVersion(int id, int version, bool recycle) { SPListItem item = GetCurrentList().GetItemById(id); if (recycle) { item.Versions.GetVersionFromID(version).Recycle(); } else { item.Versions.GetVersionFromID(version).Delete(); } } /// /// Property that holds the list name. /// public override string ListName { get { return "Test"; } }
 
 
如果只取item的发布过的版本的数据,可以做如下处理.
private NewEntity GetLastApproveVersionByItem(SPListItem item) { NewEntity result = null; if (item == null) return result; if (item.Level == SPFileLevel.Published) { result = this.ConvertToEntity(item); } else if (item.Versions != null && item.Versions.Count > 0) { foreach (SPListItemVersion itemVersion in item.Versions) { if (itemVersion.Level == SPFileLevel.Published) { result = this.ConvertToEntity(itemVersion); break; } } } return result; }
 
 
总结
sharepoint 对list的操作,主要有增加、删除和修改list里面的item数据,要注意的是这里打开的是当前操作的site。SPContext.Current.Web.Url取的是当前打开页面的值.
Tags: 

延伸阅读

最新评论

发表评论