博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SharePoint 使用代码创建 SPWeb/SPSiite/SPWebApplication以及WebPart添加到页面与删除 (三)...
阅读量:4507 次
发布时间:2019-06-08

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

在创建的时候注意你要有权限。还有如果要使用请注意合理释放资源,因为我是随便写的 就没有去考虑资合理问题。

首先来写怎么去通过代码创建SPweb,SPWeb与Spsite类似所以我就不详细信息注视了

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using Microsoft.SharePoint.Administration;using Microsoft.SharePoint;namespace TestWF{    public partial class CreateWeb : Form    {        public Form2 ParentForm { get; set; }        public CreateWeb()        {            InitializeComponent();        }        ///         /// Farm场        ///         public SPFarm Farm        {            get { return SPFarm.Local; }        }        ///         /// 服务        ///         public SPWebService SPWebService {            get { return  Farm.Services.GetValue
(""); } } private void CreateApp_Load(object sender, EventArgs e) { #region 加载应用程序 List
list = new List
(); list.Add(new ComboBoxModel() { ID = "1", Name = "--请选择--" }); foreach (SPWebApplication webApp in SPWebService.WebApplications) { list.Add(new ComboBoxModel() { ID = webApp.Id.ToString(), Name = webApp.Name }); } this.cbbApp.DataSource = list; this.cbbApp.DisplayMember = "Name"; this.cbbApp.ValueMember = "Id"; this.cbbApp.SelectedValueChanged += cbbApp_SelectedValueChanged; #endregion #region 加载模板选择 //填写管理中心地址 SPSite site = new SPSite("http://jason-pc:5901/"); SPWeb web = site.OpenWeb(); //获取所有模版 SPWebTemplateCollection templates = web.GetAvailableWebTemplates(2052); TreeNode node = new TreeNode(); node.Text = "协作"; BindTemplateTree(node, templates); this.tvTemp.Nodes.Add(node); node = new TreeNode(); node.Text = "会议"; BindTemplateTree(node, templates); this.tvTemp.Nodes.Add(node); node = new TreeNode(); node.Text = "企业"; BindTemplateTree(node, templates); this.tvTemp.Nodes.Add(node); node = new TreeNode(); node.Text = "发布"; BindTemplateTree(node, templates); this.tvTemp.Nodes.Add(node); node = new TreeNode(); node.Text = "自定义"; BindTemplateTree(node, templates); this.tvTemp.Nodes.Add(node); web.Close(); site.Close(); #endregion } ///
/// 更改URL /// ///
///
void cbbApp_SelectedValueChanged(object sender, EventArgs e) { if (this.cbbApp.SelectedValue != null&&this.cbbApp.SelectedValue!="1") { SPWebApplication webApp = SPWebService.WebApplications[new Guid(this.cbbApp.SelectedValue.ToString())]; #region 加载站点集 List
sites = new List
(); sites.Add(new ComboBoxModel() { ID = "1", Name = "--请选择--" }); foreach (SPSite site in webApp.Sites) { sites.Add(new ComboBoxModel() { ID = site.ID.ToString(), Name = site.Url }); } this.cbSites.DataSource = sites; this.cbSites.DisplayMember = "Name"; this.cbSites.ValueMember = "Id"; this.cbSites.SelectedValueChanged += cbSites_SelectedValueChanged; #endregion } } void cbSites_SelectedValueChanged(object sender, EventArgs e) { ComboBox cm = sender as ComboBox; if (cm.SelectedValue != null&&cm.SelectedValue!="1") { using (SPSite site = new SPSite(new Guid(cm.SelectedValue.ToString()))) { cm.Tag = site; } } } private void button1_Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; if (this.lbtemp.Tag == null) { MessageBox.Show("你未选择模版!"); } if (this.cbSites.Tag == null) { MessageBox.Show("你未选择站点集!"); } try { SPWebTemplate t = this.lbtemp.Tag as SPWebTemplate; SPSite site = this.cbSites.Tag as SPSite; SPWeb web = site.AllWebs.Add(this.tbUrl.Text.Trim(), this.tbTitel.Text.Trim(), this.tbDesc.Text.Trim(), 2052,t, false, false); web.Close(); site.Close(); } catch (Exception ex) { MessageBox.Show("创建站点失败:" + ex.Message); } this.Cursor = Cursors.Default; ParentForm.BindTree(); } void BindTemplateTree(TreeNode node,SPWebTemplateCollection temp) { foreach (SPWebTemplate t in temp) { if(node.Text==t.DisplayCategory) { node.Nodes.Add(new TreeNode() { Text = t.Title, Tag = t }); } } } private void tvTemp_AfterSelect(object sender, TreeViewEventArgs e) { this.lbtemp.Text="你已经选中:"+e.Node.Text; this.lbtemp.Tag = e.Node.Tag; if (e.Node.Tag != null) { SPWebTemplate t = e.Node.Tag as SPWebTemplate; lbDesc.Text = t.Description; } } }}
 
如上图一个添加WebPart一个删除已经有的WebPart,这里需要注意的是我目前是把页面的地址写死了
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using Microsoft.SharePoint.Administration;using Microsoft.SharePoint;using Microsoft.SharePoint.WebPartPages;using System.Web.UI.WebControls.WebParts;using System.Globalization;using System.Xml;namespace TestWF{    public partial class AddWebPart : Form    {        public Form2 ParentForm { get; set; }        public AddWebPart()        {            InitializeComponent();        }        ///         /// Farm场        ///         public SPFarm Farm        {            get { return SPFarm.Local; }        }        ///         /// 服务        ///         public SPWebService SPWebService {            get { return  Farm.Services.GetValue
(""); } } private void CreateApp_Load(object sender, EventArgs e) { #region 加载应用程序 List
list = new List
(); list.Add(new ComboBoxModel() { ID = "1", Name = "--请选择--" }); foreach (SPWebApplication webApp in SPWebService.WebApplications) { list.Add(new ComboBoxModel() { ID = webApp.Id.ToString(), Name = webApp.Name }); } this.cbbApp.DataSource = list; this.cbbApp.DisplayMember = "Name"; this.cbbApp.ValueMember = "Id"; this.cbbApp.SelectedValueChanged += cbbApp_SelectedValueChanged; #endregion } ///
/// 加载站点集 /// ///
///
void cbbApp_SelectedValueChanged(object sender, EventArgs e) { if (this.cbbApp.SelectedValue != null&&this.cbbApp.SelectedValue!="1") { SPWebApplication webApp = SPWebService.WebApplications[new Guid(this.cbbApp.SelectedValue.ToString())]; #region 加载站点集 List
sites = new List
(); sites.Add(new ComboBoxModel() { ID = "1", Name = "--请选择--" }); foreach (SPSite site in webApp.Sites) { sites.Add(new ComboBoxModel() { ID = site.ID.ToString(), Name = site.Url }); } this.cbSites.DataSource = sites; this.cbSites.DisplayMember = "Name"; this.cbSites.ValueMember = "Id"; this.cbSites.SelectedValueChanged += cbSites_SelectedValueChanged; #endregion } } ///
/// 加载站点 /// ///
///
void cbSites_SelectedValueChanged(object sender, EventArgs e) { ComboBox cm = sender as ComboBox; if (cm.SelectedValue != null&&cm.SelectedValue!="1") { using (SPSite site = new SPSite(new Guid(cm.SelectedValue.ToString()))) { cm.Tag = site; #region 加载站点 List
webs = new List
(); webs.Add(new ComboBoxModel() { ID = "1", Name = "--请选择--" }); foreach (SPWeb web in site.AllWebs) { webs.Add(new ComboBoxModel() { ID = web.ID.ToString(), Name = web.Title }); } this.cbbWeb.DataSource = webs; this.cbbWeb.DisplayMember = "Name"; this.cbbWeb.ValueMember = "Id"; this.cbbWeb.SelectedValueChanged += cbbWeb_SelectedValueChanged; #endregion } } } ///
/// 选择站点 /// ///
///
void cbbWeb_SelectedValueChanged(object sender, EventArgs e) { ComboBox cm = sender as ComboBox; if (cm.SelectedValue != null && cm.SelectedValue != "1"&& this.cbSites.Tag!=null) { using (SPSite site = new SPSite(new Guid(this.cbSites.SelectedValue.ToString()))) { SPWeb web=site.AllWebs[new Guid(cm.SelectedValue.ToString())]; //本来在这里想继续加载站点中的所有页面的,由于暂时没找到怎么获取所有页面所以写死了 this.cbbPage.SelectedValueChanged += cbbPage_SelectedValueChanged; cm.Tag = web; this.Cursor = Cursors.WaitCursor; try { this.tvTemp.Nodes.Clear(); //根据站点获取所有WebPart并且加入树中 SPLimitedWebPartManager manger = web.GetLimitedWebPartManager("SitePages/Home.aspx", PersonalizationScope.Shared); for (int i = 0; i < manger.WebParts.Count; i++) { TreeNode node = new TreeNode(); node.Text = manger.WebParts[i].Title; node.Tag = manger.WebParts[0].ID; this.tvTemp.Nodes.Add(node); } } catch (Exception ex) { MessageBox.Show("错误:"+ex.Message); } this.Cursor = Cursors.Default; } } } ///
/// 本来在这里想继续加载站点中的所有页面的,由于暂时没找到怎么获取所有页面所以写死了 /// ///
///
void cbbPage_SelectedValueChanged(object sender, EventArgs e) { ComboBox cm = sender as ComboBox; if (cm.SelectedValue != null && cm.SelectedValue != "1" && this.cbbWeb.Tag != null) { SPWeb web = this.cbbWeb.Tag as SPWeb; } } private void button1_Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; if (this.tvTemp.Tag == null) { MessageBox.Show("你未选择WebPart!"); return; } if (this.cbbWeb.Tag == null) { MessageBox.Show("你未选择站点集!"); return; } try { string ID= this.tvTemp.Tag.ToString(); SPWeb web = this.cbbWeb.Tag as SPWeb; try { ///删除选中的一个WebPart SPLimitedWebPartManager manger = web.GetLimitedWebPartManager("SitePages/Home.aspx", PersonalizationScope.Shared); for (int i = 0; i < manger.WebParts.Count; i++) { if (manger.WebParts[i].ID == ID) { manger.DeleteWebPart(manger.WebParts[i]); } } MessageBox.Show("删除WebPart成功!"); } catch (Exception ex) { MessageBox.Show("错误:" + ex.Message); } } catch (Exception ex) { MessageBox.Show("失败:" + ex.Message); } this.Cursor = Cursors.Default; ParentForm.BindTree(); } private void tvTemp_AfterSelect(object sender, TreeViewEventArgs e) { this.tvTemp.Tag = null; if (e.Node.Tag != null) { this.tvTemp.Tag = e.Node.Tag; this.lbPart.Text = "你已经选中了:" + e.Node.Text; } } private void button3_Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; if (this.tvTemp.Tag == null) { MessageBox.Show("你未选择WebPart!"); return; } if (this.cbbWeb.Tag == null) { MessageBox.Show("你未选择站点集!"); return; } try { //获取选中的WebPart列表中的其中一个SPFile SPFile file =this.tvTemp.Tag as SPFile ; SPWeb web = this.cbbWeb.Tag as SPWeb; try { //获取一个SPLimitedWebPartManager管理类 SPLimitedWebPartManager manger = web.GetLimitedWebPartManager("SitePages/Home.aspx", PersonalizationScope.Shared); //创建一个WebPart 部件 XmlReader xmlReader = new XmlTextReader(file.OpenBinaryStream()); string errorMessage; System.Web.UI.WebControls.WebParts.WebPart webPart = manger.ImportWebPart(xmlReader, out errorMessage); //将WebPart加载到页面上 其中后两个参数是设置页面位置的 manger.AddWebPart(webPart,"Left",2); MessageBox.Show("添加WebPart成功!"); } catch (Exception ex) { MessageBox.Show("错误:" + ex.Message); } } catch (Exception ex) { MessageBox.Show("失败:" + ex.Message); } this.Cursor = Cursors.Default; ParentForm.BindTree(); } ///
/// 加载页面已经有的WebPart列表 /// ///
///
private void radioButton1_CheckedChanged(object sender, EventArgs e) { this.tvTemp.Nodes.Clear(); ComboBox cm = this.cbbWeb as ComboBox; if (cm.SelectedValue != null && cm.SelectedValue != "1" && this.cbSites.Tag != null) { using (SPSite site = new SPSite(new Guid(this.cbSites.SelectedValue.ToString()))) { SPWeb web = site.AllWebs[new Guid(cm.SelectedValue.ToString())]; this.cbbPage.SelectedValueChanged += cbbPage_SelectedValueChanged; cm.Tag = web; this.Cursor = Cursors.WaitCursor; try { //根据站点获取所有WebPart并且加入树中 SPLimitedWebPartManager manger = web.GetLimitedWebPartManager("SitePages/Home.aspx", PersonalizationScope.Shared); for (int i = 0; i < manger.WebParts.Count; i++) { TreeNode node = new TreeNode(); node.Text = manger.WebParts[i].Title; node.Tag = manger.WebParts[0].ID; this.tvTemp.Nodes.Add(node); } } catch (Exception ex) { MessageBox.Show("错误:" + ex.Message); } this.Cursor = Cursors.Default; } } } ///
/// 加载WebPart列表 /// ///
///
private void radioButton2_CheckedChanged(object sender, EventArgs e) { if (this.cbbWeb.Tag != null && this.cbSites.Tag != null) { this.Cursor = Cursors.WaitCursor; using (SPSite site = new SPSite(new Guid(this.cbSites.SelectedValue.ToString()))) { SPWeb web = site.AllWebs[new Guid(cbbWeb.SelectedValue.ToString())]; //获取所有的WebPart的SPList列表 注意这里返回的还是不是WebPart SPList list = web.GetCatalog(SPListTemplateType.WebPartCatalog); for (int i = 0; i < list.ItemCount; i++) { TreeNode node = new TreeNode(); node.Text = list.Items[i].File.Title; node.Tag = list.Items[i].File; this.tvTemp.Nodes.Add(node); } } this.Cursor = Cursors.Default; } } } }

以上就是怎么去删除和添加WebPart ,至于移动WebPart也差不多我就没写。

如果有更高的方法请大家告诉我。

转载于:https://www.cnblogs.com/StudyHard/archive/2013/05/10/3070624.html

你可能感兴趣的文章
php glob()函数实现目录文件遍历与寻找与模式匹配的文件路径
查看>>
CentOS6.3 编译安装LAMP(2):编译安装 Apache2.2.25
查看>>
》》》《类的继承》
查看>>
cad.net之ACAD移植到GCAD的自动加载问题
查看>>
Java超简明入门学习笔记(一)
查看>>
CaltrainTimes从设计到发布(基于Flex的手机应用)
查看>>
三层架构1
查看>>
JVM虚拟机笔记(3)-- 类加载器实践热部署
查看>>
Windows照片查看器--全屏浏览查看
查看>>
使用LinkedList存储一副扑克牌,然后实现洗牌功能。
查看>>
Windows环境下使用bitvise架构sftp服务器
查看>>
Python爬虫urllib2库基本使用
查看>>
[计算机网络] 一些应用对应的的应用层协议及传输层协议
查看>>
学习进度五
查看>>
【转】Git操作
查看>>
2014暑期最后一次个人赛
查看>>
●洛谷P1291 [SHOI2002]百事世界杯之旅
查看>>
软工网络15团队作业2——团队计划
查看>>
MySQL--创建用户
查看>>
isIos
查看>>