前面一节介绍了一种创建一般Web Part的方法,本节介绍创建SharePoint WebPart
二、第二种方式是创建一个SharePoint Web Part
Step1:可以利用前面第一种方式中使用的方式创建一个Class Library工程,工程名就暂时定为SimpleWebPart。
Step2:接下来添加引用Microsoft.SharePoint.dll。
Step3:强命名Assembly,可以参考前面一节中的介绍。
也可以使用Command来强命名(麻烦点),
1、如输入:cd /Program Files/Microsoft Visual Studio .NET 2003/SDK/v1.1/Bin/
2、然后输入:sn.exe -k C:/keypair.snk
(这个路径可以是任意的)
3、在工程中,找到Assembly.cs,加入(或修改)[assembly: AssemblyKeyFile("C://keypair.snk")]
Step4:继承自Microsoft.SharePoint.WebPartPages.WebPart
示例代码如下所示。其中RenderWebPart是SharePoint Web Part的东西,区别于以前的Render。
C# | Copy Code |
//-------------------------------------------------------------------- // File: SimpleWebPart.cs // // Purpose: A sample Web Part that demonstrates how to create a basic // Web Part. //--------------------------------------------------------------------
using System; using System.ComponentModel; using System.Runtime.InteropServices; using System.Web.UI; using System.Web.UI.WebControls; using System.Xml.Serialization; using Microsoft.SharePoint; using Microsoft.SharePoint.WebPartPages; using Microsoft.SharePoint.Utilities; using System.Web.UI.HtmlControls;
namespace MyWebParts { /// <summary> /// This Web Part changes its title and implements a custom property. /// </summary> [XmlRoot(Namespace="MyWebParts")] public class SimpleWebPart : WebPart { private const string defaultText = "hello"; private string text=defaultText;
// Declare variables for HtmlControls user interface elements. HtmlButton _mybutton; HtmlInputText _mytextbox;
// Event handler for _mybutton control that sets the // Title property to the value in _mytextbox control. public void _mybutton_click (object sender, EventArgs e) { this.Title = _mytextbox.Value; try { this.SaveProperties=true; } catch { Caption = "Error... Could not save property."; } }
// Override the ASP.NET Web.UI.Controls.CreateChildControls // method to create the objects for the Web Part's controls. protected override void CreateChildControls () { // Create _mytextbox control. _mytextbox = new HtmlInputText(); _mytextbox.Value=""; Controls.Add(_mytextbox);
// Create _mybutton control and wire its event handler. _mybutton = new HtmlButton(); _mybutton.InnerText = "Set Web Part Title"; _mybutton.ServerClick += new EventHandler (_mybutton_click); Controls.Add (_mybutton); }
[Browsable(true),Category("Miscellaneous"), DefaultValue(defaultText), WebPartStorage(Storage.Personal), FriendlyName("Text"),Description("Text Property")] public string Text { get { return text; }
set { text = value; } }
protected override void RenderWebPart(HtmlTextWriter output) { RenderChildren(output); // Securely write out HTML output.Write("<BR>Text Property: " + SPEncode.HtmlEncode(Text)); } } } |
Step5:Build。
Step6:部署Web Part
1、首先将生成的dll添加到bin目录下或是GAC中,这在前面介绍过了。
2、然后添加到SafeControl中,这也跟前面一样。
3、创建一个Web Part Definition file(.dwp)。
这个有必要介绍下,dwp文件是一个简单的XML文件,其中包含了Web part的属性设置。如下所示
<?xml version="1.0"?>
<WebPart xmlns="http://schemas.microsoft.com/WebPart/v2">
<Assembly>AssemblyName(with no .dll extension),
Version=VersionNumber, Culture=Culture,
PublicKeyToken=PublicKeyToken</Assembly>
<TypeName>WebPartNamespace.WebPartClassName</TypeName>
<Title>DefaultWebPartTitle</Title>
<Description>WebPartDescription</Description>
</WebPart>
创建时,可以新建一个文本文档,然后将上面的内容拷贝到这个文档中,修改其中的属性,最后保存为SimpleWebPart.dwp文件。
4、将web part导入到web part页面中
在Share Point服务中,打开要添加Web Part的页面,从Site Actions菜单中,选择Edit page。
点击Add a Web Part,选择Advanced Web Part gallery and options。
在 Add Web Parts区域,点击Import.
导航到前面一步中建立的SimpleWebPart.dwp文件,点击Upload按钮。上传后,页面会刷新,"My Simple Web Part"应该显示在Imported Web Part下面。
拖动"My Simple Web Part"前面的图标,到要放置web part的位置。