MOSS 直接动态安装webPart到页面
感觉是不是很神奇?其实也很简单,主要用到SPLimitedWebPartManager这个类就OK拉
其实这个要注意的就是下面的WebPartXml 他就是 站点的webpart gallery描述,可能一个dll文件中存在多个webpart
在实际的开发中做一个Setup连部署人员都可以不用拉。。。HOHo。。。
string gallery = "";
gallery = gallery + "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
gallery = gallery + "<webParts>";
gallery = gallery + "<webPart xmlns=\"http://schemas.microsoft.com/WebPart/v3/">";
gallery = gallery + "<metaData>";
gallery = gallery + "<type name=\"" + t.AssemblyQualifiedName + "\"/>";
gallery = gallery + "<importErrorMessage>Cannot import this web part.</importErrorMessage>";
gallery = gallery + "</metaData>";
gallery = gallery + "<data>";
gallery = gallery + "<properties>";
gallery = gallery + "<property name=\"Title\" type=\"string\">" + webpartTitle + "</property>";
gallery = gallery + "<property name=\"Description\" type=\"string\">" + webpartDesc + "</property>";
gallery = gallery + "</properties>";
gallery = gallery + "</data>";
gallery = gallery + "</webPart>";
gallery = gallery + "</webParts>";
private bool AddWebpartToPage(string TargetSiteUrl, string webPartXml, string ZoneID, int ZoneIndex,string Title,out string err)
{
bool flag = false;
SPLimitedWebPartManager manager = null;
if (TargetSiteUrl == "" || webPartXml == "" || ZoneID == "")
{
err = "001";
return false;
}
try
{
//重新启动IIS
Process p = new Process();
p.StartInfo.FileName = "iisreset.exe";
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.Start();
p.WaitForExit();
SPSite sites = new SPSite(TargetSiteUrl);
SPWeb web = sites.RootWeb;
manager = web.GetLimitedWebPartManager(TargetSiteUrl, System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
StringReader input = new StringReader(webPartXml);
XmlTextReader reader2 = new XmlTextReader(input);
System.Web.UI.WebControls.WebParts.WebPart webpart = manager.ImportWebPart(reader2, out err);
webpart.ChromeType = System.Web.UI.WebControls.WebParts.PartChromeType.None;
manager.AddWebPart(webpart, ZoneID, ZoneIndex);
web.Close();
this.SetTip("\"" + Title + "\"" + "安装完成");
flag = true;
}
catch (Exception exception)
{
err = exception.Message;
flag = false;
}
finally
{
if (manager != null)
{
manager.Dispose();
}
}
return flag;
}
大家看看是不是很简单。。。
转载于:https://www.cnblogs.com/lindayyh/archive/2010/01/08/1641985.html
MOSS 直接动态安装webPart到页面相关推荐
- 谷歌page speed 安装使用及页面问题详解
原文地址:http://wenku.baidu.com/view/b0a61f3ebcd126fff7050b40.html 谷歌page speed 安装使用及页面问题详解 谷歌page speed ...
- 更上层楼:动态安装你的windows服务
前言:先说明一下本文示例windows服务的简单需求,即根据外部配置实现不同方式记录日志的功能.记录日志的方式有三种,分为文本记录.数据库记录以及文本和数据库同时记录日志.如您所知,这个功能基本上没有 ...
- 关于ASP.NET动态加载Master页面
代码 //关于ASP.NET动态加载Master页面 //首先创建一母版页Master.master /* <%@ Master Language="C#" AutoEven ...
- php动态生成页面结构,PHP 动态生成静态HTML页面示例代码
temp.html {penglig_site_title} test.php header('content-type:text/html; charset=utf-8');//防止生成的页面乱码 ...
- 2021/12/20 显示动态读秒跳转页面
显示动态读秒跳转页面 1.antdesign 第一种: 读秒3s后跳转 <template><a-button type="primary" @click=&qu ...
- fastapi python_fastapi安装及访问页面
1.fastapi安装及访问页面 环境 Python3.8 pip3 install fastapi pip3 install uvicorn pip3 install -i https://pypi ...
- MOSS系列一 MOSS 2007的安装
MOSS系列一 MOSS 2007的安装 Posted by 尹揆 Microsoft Office SharePoint Server 2007 提供了一些企业级功能,来满足业务关键需求,例如,管理 ...
- 微信小程序点击跳转动态改变跳转页面标题
微信小程序点击后跳转动态改变跳转页面标题 页面点击跳转后原页面的item.name为跳转后页面的标题 原页面: 跳转页面: <view class="company-item" ...
- layui 如何动态加载局部页面_从输入URL到页面加载的过程?如何由一道题完善自己的前端知识体系!
前言 见解有限,如有描述不当之处,请帮忙指出,如有错误,会及时修正. 为什么要梳理这篇文章? 最近恰好被问到这方面的问题,尝试整理后发现,这道题的覆盖面可以非常广,很适合作为一道承载知识体系的题目. ...
最新文章
- Bug tracker .net 部署经验(完善中)
- Android项目中创建编译期的注解
- Flink在美团的实践与应用
- 对map集合进行排序
- 去非数字字符串的前导零
- linux搜索文件为1kb,Linux常用命令
- 听说年底这些公司在裁员?是不是真的......
- 转载一朋友的qq空间,感觉都是至理名言啊!
- Linux学习笔记第二周第四次课(2月1日)
- JLink重刷固件(win7/win8/win10亲测可用)
- 如何删除目录下的页码,使文章页码从正文开始
- 【存储知识】存储基础知识(存储设备、HBA卡、硬盘接口类型、存储特性指标)
- python打印日历_用Python打印某年日历
- 深度学习之学习(3-4)YOLOV4
- 启动虚拟机sd 0:0:0:0: [sda] Assuming drive cache: write through错误解决 本人实测!
- 计算机函数sumif求平均值,SUMIF在指定条件下求平均值
- 基于opencv实现桌面图标识别
- AV1的CDEF过程介绍
- 硬件知识:内存条出现故障的解决方案!
- FS4412开发板简介
热门文章
- 搞笑之----普通话
- Android 自定义view的知识梳理。
- BLE工作模式: Central+Peripheral(Advertising+Connected)
- android系统sharedUserId: SYSTEM_UID+PHONE_UID+BLUETOOH_UID+LOG_UID+NFC_UID
- 【Gamma】Scrum Meeting 9
- 修改python的pip下载源
- Python内置类型—序列
- java中try-catch另外一种用法:try(){}语法使用
- Flutter入门:Button
- Oracle获取月初/月末/季初/季末/半年初/半年末/年初/年末