像编辑User Control一样简单的编辑sharepoint webpart:webpart中添加带代码的user Control
2008-02-28 13:23
211 查看
最近在学习sharepoint Web Parts的开发,所使用的环境是WSS3.0,VS.NET2005,所以以前版本的资料很多东西在我的环境下不能执行,搞了好久,终于让我的Web Parts跑起来了,在这里贴上来跟大家分享一下。
参考并拷贝了部分kane boy bloy的《WalkThrough WebPart 入门指南3》内容。
(http://blog.joycode.com/kaneboy/posts/21140.aspx)
一、创建一个ASP.NET User Control
1.创建一个“ASP.NET Web应用程序”项目,在项目中添加一个名为“WebUserControl1”的用户控件,并放入一个Calendar控件。
2.在User Control的Code-Behind文件(这里是“WebUserControl1.ascx.cs”)中,加入自己想加入的代码。我们的示例中在User Control的Page_Load事件中加入了一行代码,用来设置Calendar控件的ToolTip属性
public partial class WebUserControl1 : System.Web.UI.UserControl
...{
protected System.Web.UI.WebControls.Calendar Calendar1;
protected void Page_Load(object sender, EventArgs e)
...{
this.Calendar1.ToolTip = "Sample Calendar";
}
}
二、创建一个WebPart
1、从微软网站下载Visual Studio 2005 Extensions
(http://www.microsoft.com/downloads/details.aspx?FamilyId=19F21E5E-B715-4F0C-B959-8C6DCBDC1057&displaylang=en)安装。
以前的工具是WebPart Templates for VS.NET,并不支持VS.NET2005。
2、在VS.NET中创建一个“Web Part ”,名称为“SampleWebPart”。新建-->project-->Visual C#-->Web Part 。VS.NET会帮我们自动创建一个继承自System.Web.UI.WebControls.WebParts.WebPart(2003中是Microsoft.SharePoint.WebPartPages.WebPart)的WebPart(通常名称为“WebPart1”),并自动重载Render()方法。
3.在项目中通过“添加现有项…”菜单,将第一步中建立的UserControl的2个文件逐个加入到此项目中。
4.打开“WebUserControl1.ascx.cs”文件,将此文件第一行指定的namespace改成和此项目一致的“SampleWebPart”:
namespace SampleWebPart
5.打开“WebUserControl1.ascx”文件,将第一行的“<%@ Control>”标签中的"CodeBehind”和"AutoEventWireup"属性删除,“Inherits”属性的值改为“SampleWebPart.WebUserControl1”:
<%@ Control Language="C#" Inherits ="SampleWebPart.WebUserControl1" %>
6.在“解决方案资源管理器”中选中User Control项“WebUserControl1.ascx”,点击鼠标右键,选择“属性”菜单。在出现的属性窗口中,将“生成操作”属性的值更改为“嵌入的资源” (埋め込まれたリソース)。
7.在WebPart中载入Resource信息并输出
把以下代码粘贴到SampleWebPart.cs里
namespace SampleWebPart
...{
[Guid("4985ad68-179d-459e-b58a-ecafb8650585")]
public class SampleWebPart : System.Web.UI.WebControls.WebParts.WebPart
...{
private System.Web.UI.Control _innerControl;
public SampleWebPart()
...{
this.ExportMode = WebPartExportMode.All;
}
protected override void Render(HtmlTextWriter writer)
...{
// TODO: add custom rendering code here.
// writer.Write("Output HTML");
this.EnsureChildControls();
this._innerControl.RenderControl(writer);
}
protected override void CreateChildControls()
...{
base.CreateChildControls();
//从当前Assembly的Resource中取出指定信息并读到变量resourceContent中。
using (StreamReader reader = new StreamReader(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("SampleWebPart.WebUserControl1.ascx")))
...{
//将resourceContent中的内容写入到一个名为“WebUserControl1.ascx”的文件中。
String resourceContent = reader.ReadToEnd();
using (StreamWriter writer = new StreamWriter(this.Page.Server.MapPath("/bin/WebUserControl1.ascx"), false))
...{
writer.Write(resourceContent);
}
}
this._innerControl = this.Page.LoadControl("/bin/WebUserControl1.ascx");
this.Controls.Add(this._innerControl);
}
}
}
三、部署WebPart
因为使用了Visual Studio 2005 Extensions ,与VS.NET2003想比,简化了很多,只需要在属性里面输入一个发布地址再执行(F5),就ok了。只是用到UserControl的代码,所以要把生成的bin/debug文件夹里的dll文件放到当前sps的bin里面,并且设置程序的AssemblyInfo.cs,在头部添加在
using System.Security
最后添加
[assembly: AllowPartiallyTrustedCallers()]
因为放在bin下面的dll对于.net来说是不完全可信的,如果dll是放在GAC的就不用加了。并且查看sps的web.config里的trust Level ,至少得是WSS_Medium。
<trust level="WSS_Medium" originUrl="" />
具体使用了Visual Studio 2005 Extensions后的发布方法看下面的网站吧,写的很详细
http://www.agilelabs.cn/blogs/%E8%8C%83%E4%BF%8A/archive/2007/03/28/wss3-0-webpart.aspx
参考并拷贝了部分kane boy bloy的《WalkThrough WebPart 入门指南3》内容。
(http://blog.joycode.com/kaneboy/posts/21140.aspx)
一、创建一个ASP.NET User Control
1.创建一个“ASP.NET Web应用程序”项目,在项目中添加一个名为“WebUserControl1”的用户控件,并放入一个Calendar控件。
2.在User Control的Code-Behind文件(这里是“WebUserControl1.ascx.cs”)中,加入自己想加入的代码。我们的示例中在User Control的Page_Load事件中加入了一行代码,用来设置Calendar控件的ToolTip属性
public partial class WebUserControl1 : System.Web.UI.UserControl
...{
protected System.Web.UI.WebControls.Calendar Calendar1;
protected void Page_Load(object sender, EventArgs e)
...{
this.Calendar1.ToolTip = "Sample Calendar";
}
}
二、创建一个WebPart
1、从微软网站下载Visual Studio 2005 Extensions
(http://www.microsoft.com/downloads/details.aspx?FamilyId=19F21E5E-B715-4F0C-B959-8C6DCBDC1057&displaylang=en)安装。
以前的工具是WebPart Templates for VS.NET,并不支持VS.NET2005。
2、在VS.NET中创建一个“Web Part ”,名称为“SampleWebPart”。新建-->project-->Visual C#-->Web Part 。VS.NET会帮我们自动创建一个继承自System.Web.UI.WebControls.WebParts.WebPart(2003中是Microsoft.SharePoint.WebPartPages.WebPart)的WebPart(通常名称为“WebPart1”),并自动重载Render()方法。
3.在项目中通过“添加现有项…”菜单,将第一步中建立的UserControl的2个文件逐个加入到此项目中。
4.打开“WebUserControl1.ascx.cs”文件,将此文件第一行指定的namespace改成和此项目一致的“SampleWebPart”:
namespace SampleWebPart
5.打开“WebUserControl1.ascx”文件,将第一行的“<%@ Control>”标签中的"CodeBehind”和"AutoEventWireup"属性删除,“Inherits”属性的值改为“SampleWebPart.WebUserControl1”:
<%@ Control Language="C#" Inherits ="SampleWebPart.WebUserControl1" %>
6.在“解决方案资源管理器”中选中User Control项“WebUserControl1.ascx”,点击鼠标右键,选择“属性”菜单。在出现的属性窗口中,将“生成操作”属性的值更改为“嵌入的资源” (埋め込まれたリソース)。
7.在WebPart中载入Resource信息并输出
把以下代码粘贴到SampleWebPart.cs里
namespace SampleWebPart
...{
[Guid("4985ad68-179d-459e-b58a-ecafb8650585")]
public class SampleWebPart : System.Web.UI.WebControls.WebParts.WebPart
...{
private System.Web.UI.Control _innerControl;
public SampleWebPart()
...{
this.ExportMode = WebPartExportMode.All;
}
protected override void Render(HtmlTextWriter writer)
...{
// TODO: add custom rendering code here.
// writer.Write("Output HTML");
this.EnsureChildControls();
this._innerControl.RenderControl(writer);
}
protected override void CreateChildControls()
...{
base.CreateChildControls();
//从当前Assembly的Resource中取出指定信息并读到变量resourceContent中。
using (StreamReader reader = new StreamReader(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("SampleWebPart.WebUserControl1.ascx")))
...{
//将resourceContent中的内容写入到一个名为“WebUserControl1.ascx”的文件中。
String resourceContent = reader.ReadToEnd();
using (StreamWriter writer = new StreamWriter(this.Page.Server.MapPath("/bin/WebUserControl1.ascx"), false))
...{
writer.Write(resourceContent);
}
}
this._innerControl = this.Page.LoadControl("/bin/WebUserControl1.ascx");
this.Controls.Add(this._innerControl);
}
}
}
三、部署WebPart
因为使用了Visual Studio 2005 Extensions ,与VS.NET2003想比,简化了很多,只需要在属性里面输入一个发布地址再执行(F5),就ok了。只是用到UserControl的代码,所以要把生成的bin/debug文件夹里的dll文件放到当前sps的bin里面,并且设置程序的AssemblyInfo.cs,在头部添加在
using System.Security
最后添加
[assembly: AllowPartiallyTrustedCallers()]
因为放在bin下面的dll对于.net来说是不完全可信的,如果dll是放在GAC的就不用加了。并且查看sps的web.config里的trust Level ,至少得是WSS_Medium。
<trust level="WSS_Medium" originUrl="" />
具体使用了Visual Studio 2005 Extensions后的发布方法看下面的网站吧,写的很详细
http://www.agilelabs.cn/blogs/%E8%8C%83%E4%BF%8A/archive/2007/03/28/wss3-0-webpart.aspx
相关文章推荐
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除 之代码规范
- 其实添加数据也可以这样简单——表单的第三步抽象(针对UI及后置代码)
- JSP简单添加,查询功能代码
- 如何在自己的程序中添加appWidget(附简单代码)
- Sharepoint中添加/编辑/删除Webpart的几种方法
- 简单设置MyEclipse与VS一样的代码提示功能
- thinkphp利用模型通用数据编辑添加和删除的实例代码
- 给WordPress的编辑后台添加提示框的代码实例分享
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除 之代码规范
- Jquery实现简单的表格添加、编辑、删除教程
- 一步一步SharePoint 2007之二十五:编写一个最简单的WebPart(3)——添加WebPart
- php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
- 一步一步SharePoint 2007之二十五:编写一个最简单的WebPart(3)——添加WebPart
- 哥java学识有大进 干回之前的小学生系统像切菜一样简单 不说了 来代码
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除 之代码规范
- 一步一步SharePoint 2007之二十五:编写一个最简单的WebPart(3)——添加WebPart
- GridView 实现自定义分页、排序、查询、添加、编辑、多选删除 之代码规范
- android studio中添加代码编辑时的关键字
- js添加千分位的实现代码(超简单)