博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
几个常用的SharePoint对象模型的有用函数
阅读量:4136 次
发布时间:2019-05-25

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

最近在开发东莞国税网上办税报表系统,用到SharePoint2007+Infopath Service作为表单服务器,后台数据存储采用Oracle,其中涉及了管理模板的需求,要对SharePoint对象模型进行操作,研究了2天sharepoint sdk,代码完成如下:

 

 

using System;

using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.SharePoint;
using System.Collections;
using System.Collections.Generic;

namespace SPAdmin

{

 

    public class SharePointHelper
    {
/// <summary>
        /// 获取SPListItem对象所在的SPFolder
        /// </summary>
        /// <param name="item">SPListItem对象</param>
        /// <returns>SPListItem对象所在的SPFolder</returns>
        public static  SPFolder GetItemsFolder(SPListItem item)
        {
            string dirPath = SPUtility.GetUrlDirectory(item.Url);

            SPList list = item.ParentList;

             if(list.ParentWeb.ServerRelativeUrl!="/")

            dirPath=string.Format("{0}/{1}",list.ParentWeb.ServerRelativeUrl,dirPath);

            SPListItem folderItem = list.ParentWeb.GetListItem(dirPath);
            if (folderItem != null)
                return folderItem.Folder;
            else
                return null;
        }
 

 

        /// <summary>

        /// 取SPEventReceiverType枚举值
        /// </summary>
        /// <returns></returns>
        public static List<ListItem> ListEventReceiverTypeForEnum()
        {
            List<ListItem> list = new List<ListItem>();
            foreach (int i in Enum.GetValues(typeof(SPEventReceiverType)))
            {
                ListItem listitem = new ListItem(Enum.GetName(typeof(SPEventReceiverType), i), i.ToString());
                list.Add(listitem);
            }
            return list;
        }

        /// <summary>
        /// 转换SPEventReceiverType枚举
        /// </summary>
        /// <param name="Entype"></param>
        /// <returns></returns>
        public static Microsoft.SharePoint.SPEventReceiverType GetEventReceiverTypeForList(string Entype)
        {
            return (SPEventReceiverType)Enum.Parse(typeof(SPEventReceiverType), Entype, true);
        }

        /// <summary>
        /// 取SPListTemplateType枚举值
        /// </summary>
        /// <returns></returns>
        public static List<ListItem> ListTemplateTypeForEnum()
        {
            List<ListItem> list = new List<ListItem>();
            foreach (int i in Enum.GetValues(typeof(SPListTemplateType)))
            {
                ListItem listitem = new ListItem(Enum.GetName(typeof(SPListTemplateType), i), i.ToString());
                list.Add(listitem);
            }
            return list;
        }

        /// <summary>
        /// 转换SPListTemplateType枚举
        /// </summary>
        /// <param name="Entype"></param>
        /// <returns></returns>
        public static SPListTemplateType GetListTemplateTypeForList(string Entype)
        {
            return (SPListTemplateType)Enum.Parse(typeof(SPListTemplateType), Entype, true);
        }

        /// <summary>

        /// 取网站集内容类型集合
        /// </summary>
        /// <param name="strSite">站点地址</param>
        /// <param name="strWeb">网站目录</param>
        /// <returns></returns>
         
        
       

        public static SPContentTypeCollection GetWebContentTypes(string strSite, string strWeb)

        {
            try
            {
                    using (SPSite site = new SPSite(strSite))
                    {
                        site.AllowUnsafeUpdates = true;
                        using (SPWeb web = site.OpenWeb(strWeb))
                        {
                            web.AllowUnsafeUpdates = true;

                            return web.ContentTypes;

                        }
                    }

            }

            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry("Foresee$Sharepoint", "取网站集内容类型集合" + ex.Message);
                throw ex;
            }

        }

        /// <summary>

        /// 取网站集列表集合
        /// </summary>
        /// <param name="strSite">站点地址</param>
        /// <param name="strWeb">网站目录</param>
        /// <returns>SPListCollection</returns>
        public static SPListCollection GetWebLists(string strSite, string strWeb)
        {
            try
            {
                using (SPSite site = new SPSite(strSite))
                {
                    site.AllowUnsafeUpdates = true;
                    using (SPWeb web = site.OpenWeb(strWeb))
                    {
                        web.AllowUnsafeUpdates = true;

                        return web.Lists;

                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry("Foresee$Sharepoint", "取网站集列表集合" + ex.Message);
                throw ex;
            }

        }

        /// <summary>
        /// 取list的GUID
        /// </summary>
        /// <param name="strSite">站点地址</param>
        /// <param name="strWeb">网站目录</param>
        /// <param name="strList">列表</param>
        /// <returns>Guid</returns>
        public static Guid GetListID(string strSite, string strWeb,string strList)
        {
            try
            {
                using (SPSite site = new SPSite(strSite))
                {
                    site.AllowUnsafeUpdates = true;
                    using (SPWeb web = site.OpenWeb(strWeb))
                    {
                        web.AllowUnsafeUpdates = true;

                        SPListCollection lists = web.Lists;

                        SPList list = lists[strList];
                        return list.ID;
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry("Foresee$Sharepoint", "取list的GUID" + ex.Message);
                throw ex;
            }

        }

        /// <summary>
        /// 取View的GUID
        /// </summary>
        /// <param name="strSite">站点地址</param>
        /// <param name="strWeb">网站目录</param>
        /// <param name="strList">列表</param>
        /// <returns>Guid</returns>
        public static Guid GetViewID(string strSite, string strWeb, string strList)
        {
            try
            {
                using (SPSite site = new SPSite(strSite))
                {
                    site.AllowUnsafeUpdates = true;
                    using (SPWeb web = site.OpenWeb(strWeb))
                    {
                        web.AllowUnsafeUpdates = true;

                        SPListCollection lists = web.Lists;

                        SPList list = lists[strList];
                        return list.DefaultView.ID;
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry("Foresee$Sharepoint", "取View的GUID" + ex.Message);
                throw ex;
            }

        }

        /// <summary>
        /// 删除列表
        /// </summary>
        /// <param name="strSite">站点地址</param>
        /// <param name="strWeb">网站目录</param>
        /// <param name="strList">列表名</param>
        public static void DeleteListByName(string strSite, string strWeb, string strList)
        {
            try
            {
                using (SPSite site = new SPSite(strSite))
                {
                    site.AllowUnsafeUpdates = true;
                    using (SPWeb web = site.OpenWeb(strWeb))
                    {
                        web.AllowUnsafeUpdates = true;

                        SPListCollection lists = web.Lists;

                        if (lists[strList] != null)

                        {
                            SPList list = lists[strList];
                            System.Guid gid = list.ID;
                            lists.Delete(gid);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry("Foresee$Sharepoint", "删除列表[" + strList + "]" + ex.Message);
                throw ex;
            }

        }

        /// <summary>

        /// 删除列表ByGUID
        /// </summary>
        /// <param name="strSite">站点地址</param>
        /// <param name="strWeb">网站目录</param>
        /// <param name="strGUID">GUID</param>
        public static void DeleteListByGUID(string strSite, string strWeb, string strGUID)
        {
            try
            {
                using (SPSite site = new SPSite(strSite))
                {
                    site.AllowUnsafeUpdates = true;
                    using (SPWeb web = site.OpenWeb(strWeb))
                    {
                        web.AllowUnsafeUpdates = true;

                        SPListCollection lists = web.Lists;

                        if (lists[strGUID] != null)

                        {
                            SPList list = lists[strGUID];
                            System.Guid gid = list.ID;
                            lists.Delete(gid);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry("Foresee$Sharepoint", "删除列表ByGUID" + ex.Message);
                throw ex;
            }

        }

        /// <summary>

        /// 取列表内容类型集合
        /// </summary>
        /// <param name="strSite">站点地址</param>
        /// <param name="strWeb">网站目录</param>
        /// <param name="strList">列表名</param>
        /// <returns>SPContentTypeCollection</returns>
        public static SPContentTypeCollection GetListContentTypes(string strSite, string strWeb, string strList)
        {
            try
            {
                using (SPSite site = new SPSite(strSite))
                {
                    site.AllowUnsafeUpdates = true;
                    using (SPWeb web = site.OpenWeb(strWeb))
                    {
                        web.AllowUnsafeUpdates = true;

                        SPList list = web.Lists[strList];

                        return list.ContentTypes;

                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry("Foresee$Sharepoint", "取列表内容类型集合[" + strList+"]" + ex.Message);
                throw ex;
            }

        }

        /// <summary>
        /// 取网站列表集转换为DataTable
        /// </summary>
        /// <param name="strSite">站点地址</param>
        /// <param name="strWeb">网站目录</param>
        /// <returns>DataTable</returns>
        public static DataTable ListToDataTable(string strSite, string strWeb)
        {
            try
            {
                using (SPSite site = new SPSite(strSite))
                {
                    site.AllowUnsafeUpdates = true;
                    using (SPWeb web = site.OpenWeb(strWeb))
                    {
                        web.AllowUnsafeUpdates = true;

                        SPListCollection lists = web.Lists;

                        DataTable dt = new DataTable();

                        dt.Columns.Add("GUID");
                        dt.Columns.Add("名称");
                        dt.Columns.Add("修改时间");
                        dt.Columns.Add("修改者");
                        dt.Columns.Add("目录数");

                        for (int i = 0; i < lists.Count; i++)

                        {
                            DataRow dr = dt.NewRow();
                            dr["GUID"] = lists[i].ID;
                            dr["名称"] = lists[i].Title;
                            dr["修改时间"] = lists[i].Created.ToString();
                            dr["修改者"] = lists[i].Author;
                            dr["目录数"] = lists[i].Folders.Count.ToString();
                            dt.Rows.Add(dr);
                        }

                        return dt;

                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry("Foresee$Sharepoint", "列表转换为DataTable" + ex.Message);
                throw ex;
            }

        }

 

    }

}

转载地址:http://dapvi.baihongyu.com/

你可能感兴趣的文章
hdu 3788 hdoj 3788
查看>>
zju 1003 zoj 1003
查看>>
zju 1004 zoj 1004
查看>>
zju 1005 zoj 1005
查看>>
zju 1006 zoj 1006
查看>>
【虚拟机】虚拟化架构与系统部署(Windows系统安装)
查看>>
字节跳动安卓开发实习生面试分享
查看>>
好书分享之——《能力陷进》
查看>>
阅读笔记《c++ primer》
查看>>
阅读笔记《C++标准程序库》
查看>>
基于mirror driver的windows屏幕录像
查看>>
C语言8
查看>>
Qt实现简单延时
查看>>
qml有关矩形说明
查看>>
在qt中使用QSplitter设置初始比例setStretchFactor失效的解决方法
查看>>
repeater的使用
查看>>
qt msvc编译中文乱码解决
查看>>
qt中TextField输入框无法输入中文解决办法
查看>>
qt实现点击出现窗口,点击其他任何地方窗口消失
查看>>
QML DropArea拖拉文件事件
查看>>