创建基本 SharePoint WebPart 并更该名称

此编程任务包含用于创建基本的自定义 Windows SharePoint Services Web 部件的步骤。此部件是一个简单的 Web 部件,可用于更改 Web 部件的 Title 属性,该属性是一个 Windows SharePoint Services WebPart 基类属性,可设置 Web 部件标题栏中的文本。

ms452873.important(zh-cn,office.12).gif 重要提示:

从 Windows SharePoint Services 3.0 开始,Windows SharePoint Services Web 部件基础结构是在 Microsoft ASP.NET 2.0 Web 部件基础结构之上建立,并且 Windows SharePoint Services 完全支持从 ASP.NET WebPart 类类派生的 Web 部件。应尽可能创建 ASP.NET Web 部件。

有关选择从其进行派生的最佳 Web 部件基类的详细信息,请参阅 Windows SharePoint Services 软件开发工具包 (SDK) 中的开发 Windows SharePoint Services 中的 Web 部件。有关 ASP.NET Web 部件的详细信息,请参阅 ASP.NET 文档中的 Web 部件控件集概述

Microsoft Visual Studio 2005

Windows SharePoint Services 3.0

Web 部件基于 ASP.NET Web 表单控件。可在 Microsoft Visual C# 或 Microsoft Visual Basic 中使用 ASP.NET Web 控件库模板创建 Web 部件。

创建新的 Web 控件库项目

  1. 启动 Visual Studio 2005。

  2. 在“文件”菜单上,指向“新建”,再单击“项目”。

  3. 在“新建项目”对话框中,单击“Visual C# 项目”或“Visual Basic 项目”,然后选择“Web 控件库”模板。

  4. 键入 SimpleWebPart 作为名称并指定项目文件的位置,然后单击“确定”。

若要创建 Web 部件,则必须在 Web 控件库中添加对 Microsoft.SharePoint 程序集 (Microsoft.SharePoint.dll) 的引用。

添加对 Microsoft.SharePoint.dll 的引用

  1. 在“项目”菜单上,单击“添加引用”。

  2. 在“.NET”选项卡上,双击“Windows SharePoint Services”。

  3. 单击“确定”。

默认情况下,项目的 AssemblyVersion 属性设置为在每次重新编译 Web 部件时递增。Web 部件页使用在 web.config 文件中指定的版本号标识 Web 部件。在AssemblyVersion 属性设置为递增的情况下,如果在将 Web 部件导入 Web 部件页之后重新编译此 Web 部件,则 Web 部件框架将查找在 web.config 文件中指定的版本号。如果版本号不匹配,将出现错误。若要防止 Web 部件的版本号在每次重新编译时递增,需要在 AssemblyInfo 文件中设置版本号。

由于您要创建签名的代码,因此还必须告诉程序集允许部分信任的代码调用。默认情况下,任何没有明确选择供部分信任的代码使用的强名称程序集将只能由安全策略已授予完全信任的其他程序集调用。

设置版本号并允许部分信任的调用方

  1. 在“解决方案资源管理器”中,双击“AssemblyInfo”文件

  2. 编辑行:

    C#
    VB
     
    [assembly: AssemblyVersion(“1.0.*”)]
    

    以便它显示为:

    C#
    VB
     
    [assembly: AssemblyVersion(“1.0.0.0”)]
    
  3. 将下面的行添加到该文件的顶部:

    C#
    VB
     
    using System.Security;
    
  4. 将下面的行添加到该文件的底部:

    C#
    VB
     
    [assembly: AllowPartiallyTrustedCallers]
    

如果要创建多个 Web 部件,则通常应在所有 Web 部件之间使用同一命名空间。默认情况下,Web 控件库会向命名空间分配与项目相同的名称。对于此示例,我们将使用WebPart 类的 MyWebParts 的任意命名空间。创建项目后,会显示空白的类文件。您可以更改“WebCustomControl”的默认类名以便于识别新的 Web 部件。

重命名类和命名空间

  1. 通过以下方式重命名默认类:在“解决方案资源管理器”中选择“WebCustomControl1”,右键单击,再单击“重命名”,键入 SimpleWebPart 作为文件名。

  2. 对于 C#,通过编辑下面的行来更改 Web 部件命名空间:

    C#
     
    namespace SimpleWebPart
    

    以便它显示为:

    C#
     
    namespace MyWebParts
    
  3. 对于 Visual Basic,右键单击“解决方案资源管理器”中的“SimpleWebPart”,再单击“属性”。将“程序集名称”和“根命名空间”文本框中的文本替换为MyWebParts.SimpleWebPart

为了更容易编写基本的 WebPart 类,您应该在代码中使用 using 指令 (C#) 或 Imports 指令 (Visual Basic) 以引用下面的命名空间:

添加命名空间指令

  • 在代码顶部附近添加下面的 using 或 Imports 指令:

    C#
    VB
     
    using Microsoft.SharePoint.WebPartPages;
    

默认情况下,Web 控件库模板创建一个从 System.Web.UI.Control 类(ASP.NET 和 SharePoint WebPart 类的父类)继承的自定义控件。若要创建 SharePoint Web 部件,应从 Microsoft.SharePoint.WebPartPages.WebPart 基类继承。

从 Web 部件基类继承。

  • 将此代码行:

    C#
    VB
     
    public class SimpleWebPart : WebControl
    

    替换为此行:

    C#
    VB
     
    public class SimpleWebPart : WebPart
    

由于 Web 部件基础结构需要控制 Web 部件的内容呈现,因此 WebPart 基类将密封 System.Web.UI.Control 的 Render 方法。为此,自定义 Web 部件必须重写 WebPart基类的 RenderWebPart 方法。

使用 RenderWebPart 方法。

  • 将此代码行:

    C#
    VB
     
    protected override void Render(HtmlTextWriter output)
    

    替换为此行:

    C#
    VB
     
    protected override void RenderWebPart(HtmlTextWriter output)
    

完成上述步骤之后,可以定义 Web 部件的逻辑和呈现。对于此部件,将编写一些基本的 ASP.NET 代码以创建两个控件(文本框和按钮)来设置 Web 部件的 Title 属性。

定义 Web 部件的逻辑和呈现

  1. 在 SimpleWebPart 文件的顶部附近添加下面的代码来创建两个用户界面对象。

    C#
    VB
     
    Button saveTitle;
    TextBox newTitle;
    
  2. 在类内部添加下面的代码来创建按钮处理事件。

    C#
    VB
     
    public void saveTitle_click(object sender, EventArgs e)
    {
         this.Title = newTitle.Text;
         try
         {
              this.SaveProperties = true;
         }
         catch (Exception ex)
         {
              this.Title = "Error: " + ex.Message;
         }
    }
    
  3. 在类内部添加下面的代码来重写 CreateChildControls 方法。

    C#
    VB
     
    protected override void CreateChildControls
    {
         //Create text box
         newTitle = new TextBox;
         newTitle.Text = "";
         Controls.Add(newTitle);
    
         //Create button
         saveTitle = new Button;
         saveTitle.Text = "Set Web Part Title";
         saveTitle.Click += new EventHandler(saveTitle_click);
         Controls.Add(saveTitle);
    }
    
  4. 使用下面的代码行替换 RenderWebPart 方法。

     
     
    protected override void  RenderWebPart(HtmlTextWriter output)
    {
         RenderChildren(output);
    }
    
    VB
     
    Protected Overrides Sub RenderWebPart(ByVal output as HtmlTextWriter)
        RenderChildren(output)
    End Sub
    

Web 部件可通过 Internet 或 Intranet 进行分发。为了安全起见,在创建自定义 Web 部件时,应为其指定强名称以确保用户可以信任此部件。有关强命名的详细信息,请参阅部署 Windows SharePoint Services 中的 Web 部件以及此演练末尾的Related Topics

向程序集分配强名称

  1. 在“解决方案资源管理器”中,右键单击项目“SimpleWebPart”,然后单击“属性”。

  2. 在“SimpleWebPart”属性中,单击左侧的“签名”选项卡。

  3. 在“签名”选项卡上,选中“为程序集签名”复选框。

  4. 在“选择强名称密钥文件”下拉菜单中选择“新建”。

  5. 在“创建强名称密钥”对话框中,键入 SimpleWebPartKey 并取消选中“使用密码保护密钥文件”。

  6. 现在,在生成程序集时将对其进行签名。

在添加上述所有代码之后,即可生成示例 Web 部件。

生成 Web 部件

  • 在“生成”菜单上,单击“生成解决方案”。

生成 Web 部件之后,您必须将生成的 DLL 复制到 bin 目录。

将 DLL 复制到 bin 目录

  1. 在文件系统上,查找 SimpleWebPart.dll 文件。Visual Studio 2005 的默认位置为 C:\Documents and Settings\用户名\My Documents\Visual Studio 2005\Projects\SimpleWebPart\SimpleWebPart\bin\Debug

  2. 将 SimpleWebPart.dll 文件从输出目录复制到 Web 应用程序根 bin 目录。 的 Web 应用程序根目录的默认位置为 C:\Inetpub\wwwroot\wss\VirtualDirectories\端口号\bin

    有关详细信息,请参阅如何:查找 Web 应用程序根目录

提供 SafeControls 列表,以阻止用户在 ASPX 页中随意添加服务器端代码。此 SafeControls 列表是一个包含特定于 SharePoint 网站的经批准的控件和 Web 部件的列表,您已将这些控件和 Web 部件指定为安全项目以便在您的网站中的任何 ASPX 页上进行调用。此列表包含在您的 Web 应用程序根目录的 web.config 文件中。本地路径包含web.config 文件的物理位置。

默认情况下,此服务器的信任级别为 WSS_Minimal,这将禁止访问 Windows SharePoint Services 对象模型。若要设置此 Web 部件的 SaveProperties 属性,必须执行以下三个操作之一:

  • 为程序集创建自定义策略文件,或

  • 在全局程序集缓存中安装程序集,或

  • 提高整个虚拟服务器的信任级别。

在此示例中,将在 web.config 文件中将默认信任从 WSS_Minimal 提高到 WSS_Medium

注释

web.config 文件位于在其中运行网站虚拟目录的文件夹中。该文件通常位于以下目录中:c:\inetpub\wwwroot\wss\VirtualDirectories\PortNumber,但您的管理员可能已按不同的方式设置了目录,因此这可能不是该文件所在的位置。

您可以通过使用 Internet Information Services (IIS) 管理单元查找 web.config 文件的位置。IIS 管理单元是已经与其他管理功能集成的 IIS 管理工具。若要启动 IIS 管理单元并查找 web.config 文件,请执行以下操作:

  1. 单击“开始”,依次指向“程序”、“管理工具”,然后单击“Internet 信息服务(IIS)管理器”。

  2. 依次展开树中您的计算机名称所在的节点和“网站”项。

  3. 查找运行 Windows SharePoint Services 安装的网站(通常为“默认网站”)。

  4. 右键单击并选择“属性”。

  5. 选择“主目录”选项卡。

提高默认信任级别并为 Web 部件添加 SafeControl 条目

  1. 在 Web 应用程序根目录中打开 web.config 文件。

  2. 在 trust 部分的 level 属性中,将“WSS_Minimal”更改为“WSS_Medium”。

  3. 在 web.config 文件的 SafeControls 部分中,按如下方式为自定义程序集添加 SafeControl 条目。

    XML
     
    <SafeControl Assembly="SimpleWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=PublicKeyToken" Namespace="MyWebParts" TypeName="SimpleWebPart" Safe="True"/>
    
  4. 将 PublicKeyToken 替换为 Web 部件的程序集的实际值。若要确定 Web 部件的正确 PublicKeyToken,请使用 sn.exe 命令行实用程序。

     
     
    sn.exe -T C:\inetpub\wwwroot\wss\VirtualDirectories\PortNumber\bin\SimpleWebPart.dll
    

Web 部件定义文件 (.dwp) 是简单的 XML 文件,其中包含单个 Web 部件的属性设置。若要将 Web 部件导入 Web 部件页,只需上载 .dwp 文件。在上载 Web 部件之后,可以通过将此 Web 部件拖到 Web 部件页的其中一个区域来显示它。

.dwp 文件中需要两个属性:Assembly 和 TypeName。但是,若要在导入 Web 部件后显示其默认名称和说明,则还应包括 Title 和 Description 属性。若要在导入过程中设置其他 Web 部件属性,也可以在 .dwp 文件中定义它们。.dwp 文件的形式如下所示。

XML
 
<?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>

创建 DWP 文件

  1. 复制以下 XML 并将其粘贴到新的文本文件。

    XML
     
    <?xml version="1.0"?>
    <WebPart xmlns="http://schemas.microsoft.com/WebPart/v2">
       <Assembly>SimpleWebPart, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=PublicKeyToken</Assembly>
       <TypeName>MyWebParts.SimpleWebPart</TypeName>
       <Title>My Simple Web Part</Title>
       <Description>A simple Web Part</Description>
    </WebPart>
    
    ms452873.important(zh-cn,office.12).gif 重要提示:

    您必须将上面 XML 中的 PublicKeyToken 替换为程序集的公钥标记。

  2. 将此文件作为 SimpleWebPart.dwp 保存在 Web 应用程序根目录的 bin 目录中。

若要使用并测试 Web 部件,请将其导入到运行 Windows SharePoint Services 或 Microsoft Office SharePoint Server 2007 的服务器上的 Web 部件页。

导入 Web 部件

  1. 导航到 SharePoint 网站上希望可以在其中访问 Web 部件的页。

  2. 在 Web 部件页中,单击“网站操作”,并选择“网站设置”。

  3. 在“网站设置”页上,单击“库”标题下的“Web 部件”。

  4. 在 Web 部件库中的工具栏上,单击“上载”。

  5. 在“上载 Web 部件”页上,单击“浏览”并选择所创建的 .dwp 文件。

    注释 注意:

    该文件应位于 C:\inetpub\wwwroot\wss\VirtualDirectories\PortNumber\bin\ 中。

    单击“确定”。

  6. 导航回 Web 部件页。在 Web 部件页中,单击“网站操作”,然后选择“编辑网页”。

  7. 在您的首选区域中,单击“添加 Web 部件”,并在对话框中选中“My Simple Web Part”旁边的框。单击“添加”。

  8. 在该区域中添加 Web 部件后,在文本框中键入一些文本,然后单击“Set Web Part Title”以测试 Web 部件。

 

摘自:http://technet.microsoft.com/zh-cn/library/ms452873(v=office.12).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-3

转载于:https://www.cnblogs.com/buduan/archive/2013/02/22/2921975.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值