zoukankan      html  css  js  c++  java
  • 几个常用的SharePoint对象模型的有用函数

    最近在开发东莞国税网上办税报表系统,用到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;
                }

            }

        }
    }

    关于作者: 王昕(QQ:475660) 在广州工作生活30余年。十多年开发经验,在Java、即时通讯、NoSQL、BPM、大数据等领域较有经验。
    目前维护的开源产品:https://gitee.com/475660
  • 相关阅读:
    ★漫画:优秀的程序员具备哪些属性?
    不评价别人的生活,是一个人最基本的修养
    不评价别人的生活,是一个人最基本的修养
    OSX 10.8+下开启Web共享的方法 /转
    OSX 10.8+下开启Web共享的方法 /转
    将客户端信息记录到服务器的简便方法
    将客户端信息记录到服务器的简便方法
    关于selenium IDE找不到元素bug
    关于selenium IDE找不到元素bug
    ★用辩证数学解答“缸中之脑”
  • 原文地址:https://www.cnblogs.com/starcrm/p/1309821.html
Copyright © 2011-2022 走看看