说明:在创建此项目前,安装了一系列的插件:
包括:
Vs2005 sp1
VSeWSS.exe ---(webpart模板)
OfficeServerSDK.exe
VSTO+2005+SE.exe
一、创建用户控件
在VS2005中,新建一个项目:asp.net WEB应用程序。起名为:
MyUserControlTest1,如下图:
自动生成项目:MyUserControlTest1和解决方案MyUserControlTest1。
在解决方案的资源管理器中,会自动自成一个Default.aspx文件。删除Default.aspx文件。
在项目MyUserControlTest1中,添加现在项,选择“web 用户控件”,如图:
用户控件名:MyWebUserControl.ascx。
在用户控件中添加一个日历控件Calendar1。
在MyWebUserControl.ascx.cs文件中添加一行后台代码:
protected void Page_Load(object sender, EventArgs e)
{
this.Calendar1.ToolTip = "这是eNet自定义的用户控件(最简单的日历)";
}
如下图:
编译项目。到此,用户控件就开发完了。该用户控件包含的下面的三个文件是在webpart中需要使用的:
MyWebUserControl.ascx
MyWebUserControl.ascx.cs
MyWebUserControl.ascx.designer.cs
如下图:
二、创建webpart
1、创建项目:
在解决方案中添加新项目:
MyWebPart,如图:
2、添加用户控件。
在资料管理器中点击MyWebPart项目,右键,添加现有项,将刚才的用户控件的三个文件全部添加进来。
说明:用户控件生成的DLL文件不需要引用进来。
3、修改MyWebPart.cs后台代码:
在 MyWebPart.cs文件中,添加System.IO的引用。
private System.Web.UI.Control _innerControl;
重写:CreateChildControls
protected override void CreateChildControls()
{
using (StreamReader reader = new StreamReader(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("SampleWebPart.WebUserControl1.ascx")))
{
String resourceContent = reader.ReadToEnd();
using (StreamWriter writer = new StreamWriter(this.Page.Server.MapPath("/bin/MyWebUserControl.ascx"), false))
{
writer.Write(resourceContent);
}
}
this._innerControl = this.Page.LoadControl("/bin/MyWebUserControl.ascx");
this.Controls.Add(this._innerControl);
}
在Render事件中如下代码:
protected override void Render(HtmlTextWriter writer)