博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
步步为营 SharePoint 开发学习笔记系列 十一、SharePoint 对list操作
阅读量:6697 次
发布时间:2019-06-25

本文共 6068 字,大约阅读时间需要 20 分钟。

概要

在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取的是当前打开页面的值.

作者:

出处:

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

你可能感兴趣的文章
JDK源码阅读(一) ArrayList
查看>>
Quartz1.8.5例子(六)
查看>>
leetcode524
查看>>
leetcode806
查看>>
(29)odoo的可用小图标
查看>>
MVC ViewBag传值
查看>>
通过面试题学习零散知识:Java面试题整理
查看>>
达成目标5步法则——雷达里奥/核聚
查看>>
CentOS虚拟机通过主机网络上网
查看>>
Redis架构设计
查看>>
nio编程
查看>>
【竞赛笔记】飞思卡尔智能车竞赛
查看>>
codevs 1291 火车线路
查看>>
2017 国庆湖南 Day3
查看>>
位置参数,默认参数,非关键字可变长参数,关键字可变长参数
查看>>
Linux下vi命令
查看>>
btrfs文件系统管理与应用
查看>>
SpringMVC视图解析器概述
查看>>
SQL Server 自动化运维系列 - 监控磁盘剩余空间及SQL Server错误日志(Power Shell)...
查看>>
English Phonetic Spelling Alphabet
查看>>