转:http://www.soaspx.com/dotnet/asp.net/tech/tech_20120814_9489.html

/// <summary>

        /// 向页面添加Webpart

        ///
</summary>

        /// <param name="web">站点</param>

        /// <param name="pageUrl">页面地址</param>

        /// <param name="webPartName">Webpart名称</param>

        /// <param name="zoneID">WebPartZone的ID</param>

        /// <param name="zoneIndex">ZoneIndex</param>

        /// <param name="properties">字典类型的杂项名称和值</param>

        /// <returns></returns>

        public static
string AddWebPartToPage(SPWeb web,
string pageUrl, string webPartName,
string zoneID, int zoneIndex, Dictionary<string,
string> properties)

        {

            using (Microsoft.SharePoint.WebPartPages.SPLimitedWebPartManager webPartManager = web.GetLimitedWebPartManager(

                   pageUrl, PersonalizationScope.Shared))

            {

                using (WebPart webPart = CreateWebPart(web, webPartName, webPartManager))

                {

                    Microsoft.SharePoint.WebPartPages.SPUserCodeWebPart codeWebPart
= webPart.WebBrowsableObject as Microsoft.SharePoint.WebPartPages.SPUserCodeWebPart;



                    if (properties !=
null)

                    {

                        foreach (string key
in properties.Keys)

                        {

                            foreach (Microsoft.SharePoint.WebPartPages.SPUserCodeProperty item
in codeWebPart.Properties)

                            {

                                if (item.Name == key)

                                {

                                    item.Value = properties[key];

                                }

                            }

                        }

                    }

                    webPart.ChromeType = PartChromeType.None;//设置部件版式类型  设置 无

                    webPartManager.AddWebPart(webPart, zoneID, zoneIndex);

                    return webPart.ID;

                }

            }

        }



        public
static WebPart CreateWebPart(SPWeb web, string webPartName, Microsoft.SharePoint.WebPartPages.SPLimitedWebPartManager webPartManager)

        {

            SPQuery qry = new SPQuery();

            qry.Query = String.Format("<Where><Eq><FieldRef Name='FileLeafRef' /><Value Type='File'>{0}</Value></Eq></Where>",
webPartName);

            SPList webPartGallery = null;

            if (null == web.ParentWeb)

            {

                webPartGallery = web.GetCatalog(

                 SPListTemplateType.WebPartCatalog);

            }

            else

            {

                webPartGallery = web.Site.RootWeb.GetCatalog(

                  SPListTemplateType.WebPartCatalog);

            }

            SPListItemCollection webParts = webPartGallery.GetItems(qry);

            XmlReader xmlReader = new XmlTextReader(webParts[0].File.OpenBinaryStream());

            string errorMsg;

            WebPart webPart = webPartManager.ImportWebPart(xmlReader,
out errorMsg);

            return webPart;

        }

 

调用

 

Dictionary<string,
string> properity = new Dictionary<string,
string>();

            properity.Add("CalendarURL",
"/SystemSetting/Lists/EnterpriseCalendar/AllItems.aspx"); CommonUtil.AddWebPartToPage(systemWeb,
"/SystemSetting/SitePages/CalendarView.aspx",
"EnterpriseCalendarViewWebPart.webpart",
"Left",
0, properity);

场解决方案添加webpart(Create Webpart to page using code)的更多相关文章

  1. SharePoint 2013 场解决方案包含第三方程序集

    前言 当我们使用SharePoint 场解决方案的时候,经常会包含第三方的程序集,而第三方的程序集经常会有强签名的问题,如果有强签名可以部署到GAC,没有的话也可以部署到应用程序下. 那么,很多初学者 ...

  2. SharePoint 沙盒解决方案 VS 场解决方案

    博客地址 http://blog.csdn.net/foxdave 最近看书正好看到了关于沙盒解决方案的介绍,便整理记录一下. 虽然沙盒解决方案已经在最新的SharePoint开发中被否决弃用了(被A ...

  3. 无法将从VSS中的解决方案添加到TFS的源代码管理器中

    VSS是一种非常有用的项目文件管理工具,百度百科的解释是:VSS 的全称为 Visual Source Safe .作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责 ...

  4. 关于hexo markdown添加的图片在github page中无法显示的问题

    title: 关于hexo markdown添加的图片在github page中无法显示的问题 date: 2018-03-31 00:21:18 categories: methods tags: ...

  5. javascript - Get page source code - Stack Overflow

    javascript - Get page source code - Stack Overflow Get page source code

  6. 网站集A的子网站B上没有解决方案C发布的webpart

    在A的主站点,查看解决方案C在该网站集的feature,若未打开,则打开:若已经打开,可以先关闭再打开一次. 如果问题依然存在,可以查看子网站B上的feature是否打开,若未打开,则打开:若已经打开 ...

  7. iOS系统中导航栏的转场解决方案与最佳实践

    背景 目前,开源社区和业界内已经存在一些 iOS 导航栏转场的解决方案,但对于历史包袱沉重的美团 App 而言,这些解决方案并不完美.有的方案不能满足复杂的页面跳转场景,有的方案迁移成本较大,为此我们 ...

  8. VS2012给同一个解决方案添加多个项目

    1.选择文件->添加->新建项目或现有项目 2.接下来在解决方案资源管理器中我们会发现解决方ConsoleApplication1中有两个项目,这里一个是类库项目ClassLibrary1 ...

  9. SharePoint 如何导出部署的场解决方案

    前言 当我们在做服务器场迁移或者备份的时候,经常需要场中部署的解决方案包,然而,很多时候,我们无法找到这些解决方案包.很多解决方案在部署的时候,可能就已经删掉了,很多解决方案由于时间久远,我们不知道哪 ...

随机推荐

  1. HTMLImageElement类型的简便利用

    这个是我在复习书籍的时候看见的,当时一个同学想通过页面发送请求,但是数据量不是太大,所以用的get方式,但是页面用表单提交请求的话会让页面进行跳转,当时我在网上查了一点资料,发现基本上都是通过ajax ...

  2. hdu 4300 Clairewd’s message KMP应用

    Clairewd’s message 题意:先一个转换表S,表示第i个拉丁字母转换为s[i],即a -> s[1];(a为明文,s[i]为密文).之后给你一串长度为n<= 100000的前 ...

  3. 1.Bloom filter

    Bloom filter 是由 Howard Bloom 在 1970 年提出的二进制向量数据结构,它具有很好的空间和时间效率,被用来检测一个元素是不是集合中的一个成员,这种检测只会对在集合内的数据错 ...

  4. 软件测试 -- 和用户共同测试(UAT测试)的注意点有哪些

    软件产品在投产前,通常都会进行用户验收测试.如果用户验收测试没有通过,直接结果就是那不到“Money”,间接影响是损害了公司的形象,而后者的影响往往更严重.根据作者的经验,用户验收测试一定要让用户满意 ...

  5. 开发设计模式(二) ActiveObject模式

    ActiveObject模式: ActiveObject模式和Command模式的配合使用是实现多线程控制的一项古老的技术,该模式有多种使用方式,为许多工业系统提供了一个简单的多任务核心. // 活动 ...

  6. Unity3d Shader开发(三)Pass(Blending )

    混合被用于制作透明物体. 当图像被渲染时,所有着色器被执行以后,所有贴图被应用后,像素将被写到屏幕.他们是如何通过Blend命令的控制和已有的图像合并呢? Syntax 语法 Blend Off Tu ...

  7. Android手势监听

    public class MainActivity extends Activity { /* * 要实现手指在屏幕上左右滑动的事件需要实例化对象GestureDetector,new * Gestu ...

  8. lettcode-102:Binary Tree Level Order Traversal (Java)

    Binary Tree Level Order Traversal 二叉树的层序遍历 两种方式: 1.用两个queue交替表示每一层的节点 2.用两个node,一个表示当前层的最后一个节点,一个表示下 ...

  9. List中toArray()的使用方法

    当我们需要把一个链表中的元素放入数组时,jdk给我们提供了一种方法,也即运用toArray(),方法的使用如下: public class Test { public static void main ...

  10. 转一贴,今天实在写累了,也看累了--【Python异步非阻塞IO多路复用Select/Poll/Epoll使用】

    下面这篇,原理理解了, 再结合 这一周来的心得体会,整个框架就差不多了... http://www.haiyun.me/archives/1056.html 有许多封装好的异步非阻塞IO多路复用框架, ...