通过为web part创建自定义属性,我们可以通过改变web part的属性实现web part在页面上的动态显示。这些属性存储在数据库中,可以在页面加载的时候进行重用。

接下来创建的web part将会显示Address,web part提供自定义属性可以供SharePoint 的用户进行修改。我们有一些简单的地址信息如name,street,zip code和city。

  1. 创建项目
    打开Visual Studio,创建一个Visual Web Part project,命名为Example.AddressWebPart。

删除默认的Visual Web Part:“VisualWebPart1”

添加一个Visual Web Part, 命名为Address

打开Features文件夹,双击Feature1,改变feature名字为Address Feature,

为了使得web part在SharePoint上有一个很好的描述,我们可以对配置信息做一些小的改动:双击Address.webpart文件在Address文件夹中,改变web part的描述信息:

<?xml version="1.0" encoding="utf-8"?><webParts>  <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">    <metaData>      <type name="Images.Address.Address, $SharePoint.Project.AssemblyFullName$" />      <importErrorMessage>$Resources:core,ImportErrorMessage;</importErrorMessage>    </metaData>    <data>      <properties>        <property name="Title" type="string">Address</property>        <property name="Description" type="string">Displays a personalizable address on the screen</property>      </properties>    </data>  </webPart></webParts>

我们也可以改变web part的category,例如改变category为“Utilities”web part就会在名字为Utilities的group中,打开Elements.xml文件:

<?xml version="1.0" encoding="utf-8"?><Elements xmlns="http://schemas.microsoft.com/sharepoint/" >  <Module Name="Address" List="113" Url="_catalogs/wp">    <File Path="Address\Address.webpart" Url="Address.webpart" Type="GhostableInLibrary" >      <Property Name="Group" Value="Utilities" />    </File>  </Module></Elements>

  1. 自定义web part

首先,添加我们需要的属性到Address.cs文件中,Personalizable告诉Web Part framework去存储属性到数据库中,WebBrowsable属性高数web part framework在web part的编辑区显示属性:

namespace Images.Address{    [ToolboxItemAttribute(false)]public class Address : WebPart    {// Visual Studio might automatically update this path when you change the Visual Web Part project item.        private const string _ascxPath = @"~/_CONTROLTEMPLATES/Images/Address/AddressUserControl.ascx";         [Personalizable(), WebBrowsable]public String Firstname { get; set; }         [Personalizable(), WebBrowsable] public String Lastname { get; set; }         [Personalizable(), WebBrowsable] public String Street { get; set; }         [Personalizable(), WebBrowsable] public int Zip { get; set; }         [Personalizable(), WebBrowsable] public String City { get; set; }

protected override void CreateChildControls()        {            Control control = Page.LoadControl(_ascxPath);            Controls.Add(control);        }    }}

现在我们可以查看web part在SharePoint中的显示结果,deploy当前的solution,添加创建的web part到一个SharePoint 的page上,点击“Edit Web Part”,我们可以看到定义的属性在“miscellaneous”下面,如图所示:

尝试在文本框中出入一些值,web part framework将会存储这些值到数据库中,并关联到web part。然而在web part中没有显示,我们需要添加control到“AddressUserControl.ascx”,添加control之前,对“AddressUserControl.ascx.cs”文件做如下修改:

public partial class AddressUserControl : UserControl    {public Address WebPart { get; set; }    }

然后点击“Address.cs”文件,编辑CreateChildControls事件:

protected override void CreateChildControls()        {            Control control = Page.LoadControl(_ascxPath);if (control != null)            {                ((AddressUserControl)control).WebPart = this;            }            Controls.Add(control);        }

通过上述代码的改变,我们告诉AddressUserControl去填充在web part配置时的属性。这样我们就可以进入到在Address.cs文件中定义的属性。

最后添加control到AddressUserControl.ascx文件:

<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %><%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %><%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %><%@ Import Namespace="Microsoft.SharePoint" %> <%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %><%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AddressUserControl.ascx.cs" Inherits="Images.Address.AddressUserControl" %><asp:Label ID="lblFirstname" runat="server" style="font-weight: 700" ></asp:Label>&nbsp;<asp:Label       ID="lblLastname" runat="server" style="font-weight: 700" ></asp:Label>       <br />        <br />         <asp:Label ID="lblStreet" runat="server" ></asp:Label>          <br />           <asp:Label ID="lblZip" runat="server" ></asp:Label>&nbsp;-&nbsp;<asp:Label ID="lblCity" runat="server" ></asp:Label>

添加Prerender事件到AddressUserControls.ascx.cs文件:

protected override void OnPreRender(EventArgs e)          {  base.OnPreRender(e);  if (this.WebPart != null)              { this.lblFirstname.Text = this.WebPart.Firstname;  this.lblLastname.Text = this.WebPart.Lastname;  this.lblStreet.Text = this.WebPart.Street; this.lblZip.Text = this.WebPart.Zip.ToString(); this.lblCity.Text = this.WebPart.City;             }         }

Deploy当前的solution,添加web part到一个SharePoint page上,修改它的属性,结果显示如下:

转载于:https://www.cnblogs.com/weiqiao/archive/2011/12/08/2280572.html

SharePoint 2010--为WebPart创建自定义属性相关推荐

  1. SharePoint 2010 使用代码创建视图查询条件

    在浏览器里使用SharePoint 2010新建视图时,可以设置查询条件,如下图: 本文要介绍的是如何使用代码更新已创建好的视图查询条件. 首先,在浏览器新建一个视图:Search,其他一切均保持默认 ...

  2. SharePoint 2010管理中心创建网站集

    必须以管理员的身份登录SharePoint 2010管理中心主页,依次点击"应用程序管理"----"创建网站集" 鼠标放在"创建网站集"链接 ...

  3. SharePoint 2010开发实例精选——“每日一句”WebPart

    本例将在SharePoint 2010站点上构建一个每日一句Web部件.如果你的电脑上还没有装SharePoint 2010环境,可以先从配置 SharePoint 2010开发环境开始做起.为了能够 ...

  4. 为SharePoint 2010创建Application Page

    如果不了解什么是Application Page,可以参考我以前写过的这篇文章.SharePoint 2010的页面模型没有太多的变化,基本和2007保持一致.对于开发人员而言,为SharePoint ...

  5. 创建与SharePoint 2010风格一致的下拉菜单 (续) 整合Feature Custom Action框架

    在上一篇"创建与SharePoint 2010风格一致的下拉菜单"文章中,演示了如何添加一个额外的菜单到页面顶端,并使其的样式风格与SharePoint 2010内置的菜单保持一致 ...

  6. sharepoint 2010 如何使用sharepoint多媒体视频播放media webpart功能

    转:http://www.cfanz.cn/?c=article&a=read&id=40449 在sharepoint 2010中,有一个新的功能,支持在页面上播放视频.主要是通过一 ...

  7. 在SharePoint 2010中通过SQL数据源创建仪表板

    本文中,我们将讨论如何为仪表板创建数据源连接到SQL Server数据表. 注意:PerformancePoint Services是通过一个Windows身份验证委托的方式访问外部数据的.因此,外部 ...

  8. SharePoint 2010 - 如何导入\导出WebPart

    为了保存WebPart并进行重用,有时我们必须导出该WebPart并在其他页面中将其导入.下面是对此过程的描述. 导出一个WebPart 导出一个WebPart可以将WebPart设置保存成计算机本地 ...

  9. 在SharePoint 2010中创建网站的权限级别

    转:http://www.360sps.com/Item/CreatePermissionLevels.aspx 权限级别是SharePoint 2010新增加的功能,使我们对权限的设置又提高了一个层 ...

最新文章

  1. 60 个神级 VS Code 插件!
  2. 【数据结构与算法】之深入解析“两数相除”的求解思路与算法示例
  3. Qt工作笔记-QML中TextInput设置默认值,以及使用正则表达式只能输入整数
  4. idea中导包的快捷键如何使项目自动导包
  5. 关于英特尔® 处理器显卡技术
  6. 初步认识ADRC(自抗扰控制)与应用
  7. 潜伏多年的中文编程语言该不该发展起来(科技无国界,呵呵)
  8. 红旗Linux9不让登录wechat,关于网页版微信无法登陆以及wechat全平台使用的问题
  9. English-旅游英语及情景对话
  10. systemverilog 中的always_comb, always_latch, always_ff
  11. openpyxl中遇到TypeError: ‘generator‘ object is not subscriptable的问题和解决方案
  12. Android malware样本SLocker Mobile Ransomware
  13. Honda CB650R/CB650F
  14. Python编写键盘记录器
  15. si,di,ds,es寄存器
  16. MFC_Session2
  17. java -jar 参数说明
  18. 星辰变鸿蒙林蒙,星辰变中的林蒙 就是盘龙中的林雷
  19. html怎么做成多彩背景音乐,教你制作多彩的弹出式说明窗口
  20. 0108 JQuery

热门文章

  1. java游戏初始化参数过多,从头认识java-4.6 成员的初始化
  2. java 8 谓词_Java谓词– Java 8谓词
  3. [已解决] org.hibernate.HibernateException:没有活动事务,get无效
  4. qt 工具栏分隔符_带有分隔线和上下文工具栏的RecyclerView Android
  5. 使用Adobe Acrobat提取PDF签章图片
  6. linux进程控制(一)--unix环境高级编程读书笔记
  7. centos下eclipse的安装
  8. D7-Nginx-SSL
  9. Windows Server入门系列25 系统内置用户和组
  10. WEB前端性能优化基本套路