SharePoint 2013 开发——开发并部署webpart

??博客地址:http://blog.csdn.net/FoxDave

webpart我们就不详细阐述了,在APP的开发中,自定义属性设置通过APP webpart的URL查询字符串传递,它通过IFRAME来显示远程的内容。废话不多说,我们开始实际操作。

打开Visual Studio,新建SharePoint应用程序项目,名字我们就叫做SharePointAppPartTest。

参照上一篇完成项目的创建。 右键点击SharePoint项目节点,选择添加->新建项,选择客户端Web部件(宿主Web),起名叫做ClientWebPartTest,点击确定并在下一个对话框中保留默认完成添加。

我们??可以看到解决方案中是如下图生成的:

SharePoint工程中有一个Elements.xml元素用来说明我们创建的webpart,托管Web应用程序中的Pages文件夹下生成了一个对应的ASPX页面。打开Elements.xml文件可以看到如下默认生成的内容:

<ClientWebPart Name="ClientWebPartTest" Title="ClientWebPartTest 标题" Description="ClientWebPartTest 说明" DefaultWidth="300" DefaultHeight="200">

    <!-- Content 元素标识将在客户端 Web 部件内呈现的页面的位置
         在查询字符串上使用模式 _propertyName_ 引用了属性
         示例: Src="~appWebUrl/Pages/ClientWebPart1.aspx?Property1=_property1_" -->
    <Content Type="html" Src="~remoteAppUrl/Pages/ClientWebPartTest.aspx?{StandardTokens}" />

    <!-- 在 Properties 元素中定义属性。
         请记得在上述 Content 元素的 Src 特性上放置属性名称。 -->
    <Properties>
    </Properties>

  </ClientWebPart>

我们来添加几个属性,在Properties节点下,声明如下四个属性(string、int、bool、enum):

<Property
      Name="myStrProp"
      Type="string"
      RequiresDesignerPermission="true"
      DefaultValue="String default value"
      WebCategory="My Test Apps"
      WebDisplayName="A property of type string.">
      </Property>
      <Property
      Name="myIntProp"
      Type="int"
      RequiresDesignerPermission="true"
      DefaultValue="0"
      WebCategory="My Test Apps"
      WebDisplayName="A property of type integer.">
      </Property>
      <Property
      Name="myBoolProp"
      Type="boolean"
      RequiresDesignerPermission="true"
      DefaultValue="false"
      WebCategory="My Test Apps"
      WebDisplayName="A property of type boolean.">
      </Property>
      <Property
      Name="myEnumProp"
      Type="enum"
      RequiresDesignerPermission="true"
      DefaultValue="1st"
      WebCategory="My Test Apps"
      WebDisplayName="A property of type enum.">
        <EnumItems>
          <EnumItem WebDisplayName="First option" Value="1st"/>
          <EnumItem WebDisplayName="Second option" Value="2nd"/>
          <EnumItem WebDisplayName="Third option" Value="3rd"/>
        </EnumItems>
      </Property>

都是我们测试中用的,所以名称有些随意,实际应用中请取有意义的名称。 属性创建完之后,如何与webpart进行关联呢?我们需要修改Content节点的Src属性,修改后的节点如下所示:

<Content Type="html" Src="~remoteAppUrl/Pages/ClientWebPartTest.aspx?{StandardTokens}&amp;StrProp=_myStrProp_&amp;IntProp=_myIntProp_&amp;BoolProp=_myBoolProp_&amp;EnumProp=_myEnumProp_&amp;Editmode=_editMode_" />

借助这种方式,APP webpart的参数通过URL的查询字符串传递到ASPX页面,接下来我们到ASPX页面去处理我们定义的参数。

打开ClientWebPartTest.aspx页面,在空的DIV元素内加入如下控件:

<asp:Label ID="Label1" runat="server"></asp:Label>
<asp:Literal ID="Literal1" runat="server" Text="Hello world from an app part!"></asp:Literal>

打开后台代码ClientWebPartTest.aspx.cs,在Page_Load方法中加入如下代码来获取传递的参数:

var intParam = Request.QueryString["IntProp"];
            var strParam = Request.QueryString["StrProp"];
            var boolParam = Request.QueryString["BoolProp"];
            var enumParam = Request.QueryString["EnumProp"];
            var editMode = Request.QueryString["EditMode"];
            if ("true" == editMode)
            {
                Literal1.Text = "The App Part is in edit mode";
            }
            else
            {
                Literal1.Text = "myIntProp = " + intParam + "<br>" +
                "myStrProp = " + strParam + "<br>" +
                "myBoolProp = " + boolParam + "<br>" +
                "myEnumProp = " + enumParam;
            }
var spContext = SharePointContextProvider.Current.GetSharePointContext(Context);
            using (var clientContext = spContext.CreateUserClientContextForSPHost())
            {
                clientContext.Load(clientContext.Web, web => web.Title);
                clientContext.ExecuteQuery();
                this.Label1.Text = "Site Title: " + clientContext.Web.Title + "<br>";
            }

代码中我又加了一段之前的CSOM,是想用简单的组合来告诉大家我们其实可以在其中做很多的事情。

F5生成并部署APP,成功之后弹出浏览器窗体:

一样的东西,默认会跳转到应用程序的Default页面,我们回到我们的开发人员网站,点击右上角的设置->编辑网页,选择插入选项卡,点击应用程序部件。

点击添加按钮完成页面中添加webpart的操作。

好了,webpart中已经显示了我们让它显示的内容。

我们回到编辑状态,编辑这个webpart,可以看到我们添加的自定义属性。我们对属性进行适当的修改并保存。

以上就是开发APP webpart的大致过程。

另外一点需要说明的是,由于我们在调试状态下,并没有发布APP,所以需要Visual Studio处于调试状态下才可以进行访问测试。??

时间: 2024-08-04 18:17:05

SharePoint 2013 开发——开发并部署webpart的相关文章

SharePoint 2013 图文开发系列之WebPart

原文:SharePoint 2013 图文开发系列之WebPart 这是我们介绍SharePoint开发入门的第一篇,在这一篇里,我们会介绍SharePoint开发的几个关键物理路径,一些开发技巧和最基础的WebPart开发. 开发工具 在SharePoint 2013开发中,我们使用的是Visual Studio 2012/2013均可,但是VS2012要额外安装Microsoft Office Develop Tools for Visual Studio 2012,可以使用Microsof

SharePoint 2013 图文开发系列之可视化WebPart

原文:SharePoint 2013 图文开发系列之可视化WebPart 有了WebPart开发的基础,再进行可视化WebPart开发,就容易多了.创建和开发过程,两者非常相似,下面,我们简单介绍下可视化WebPart的开发. 1.添加新项目,选择SharePoint 2013空项目 ,如下图: 当然,你也可以直接选择可视化web部件,这样会在项目里自动创建一个可视化WebPart(如下图),不过我不喜欢它默认的命名方式,还要重命名或删除重建,所以我就创建空项目,而后自己添加. 2.选择部署为场

SharePoint 2013 图文开发系列之定义站点模板

原文:SharePoint 2013 图文开发系列之定义站点模板 SharePoint站点模板是一个非常好的功能,方便我们开发一类网站,然后在此基础上做二次开发,对于SharePoint的使用,有着举足轻重的作用. 因为篇幅比较长,所以加上目录,方便大家查看: 一.为站点模板添加母版页 二.为站点模板添加自定义列表 三.为站点模板添加可视化WebPart 1.添加新项目,选择SharePoint 2013 空项目,如下图: 2.选择调试站点,部署为场解决方案,如下图: 3.添加新项,选择网站定义

SharePoint 2013 图文开发系列之事件接收器

原文:SharePoint 2013 图文开发系列之事件接收器 在SharePoint的使用中,我们经常需要在完成一个动作之后,触发一个事件:比如,我们上传一个文档,但是没有标题,我们需要在上传完成之后,触发一个事件把文件名同步到标题,这就需要用到事件接收器. 此例,就是在SharePoint 2013文档库中,上传文档以后,将标题更新为文档名称的事件接收器. 1.添加新项目,选择SharePoint 2013空项目,如下图: 2.选择场解决方案,如下图: 3.添加新项,选择事件接收器,如下图:

SharePoint 2013 图文开发系列之计时器任务

原文:SharePoint 2013 图文开发系列之计时器任务 SharePoint的计时器任务,又称TimerJob,由服务里的Timer服务执行,在管理中心管理,是一个类似于Windows任务计划的功能,方便定时执行一些需要的功能,以免影响服务器性能. 在SharePoint 2013的开发中,很多时候我都会选择2013的空项目,方便以后添加项,也许是个人习惯问题,是不是好习惯,还是希望大家在开发中自己体会. 1.添加新项目,选择SharePoint 2013空项目,如下图 2.选择场解决方

SharePoint 2013 图文开发系列之自定义字段

原文:SharePoint 2013 图文开发系列之自定义字段 SharePoint使用的优势,就在于开箱即用.快速搭建,SharePoint自身为我们提供了很多字段类型,已经很丰富了.但是,在实际应用中,我们还需要一些功能特殊的字段,下面,我们简单介绍下字段的开发,大家了解以后,可以按照需求扩展自己的字段类型. 1.新建项目,选择SharePoint 2013 空项目,如下图: 2.选择调试网站和解决方案类型,如下图: 3.添加新项,类,这个是用来定义字段的,如下图: 4.添加新项,类,这个是

SharePoint 2013 图文开发系列之代码定义列表

原文:SharePoint 2013 图文开发系列之代码定义列表 在SharePoint的开发中,用Visual Studio自定义列表是经常会用到的,因为很多时候,我们并不会手动创建列表,而手动创建列表在测试服务器和正式机之间同步字段,也很麻烦,所以我们经常用代码来定义列表或者文档库. 尤其在工作流的开发中,我们经常会用到代码定义任务列表,或者历史记录列表,用来存储我们需要存储的相关数据.而在Visual Studio 2013中,定义列表也提供了模板,通过模板创建,我们很容易就可以定义需要的

SharePoint 2013 图文开发系列之Visual Studio 创建母版页

原文:SharePoint 2013 图文开发系列之Visual Studio 创建母版页 一直以来,对于SharePoint母版页的创建,都是使用SharePoint Designer来创建和修改的,而后接触了SharePoint 2013,发现可以使用Html文件,通过设计管理器导入,然后生成Master页面使用,但是效果不是很好. 其实,SharePoint还可以通过代码方式创建和部署母版页,创建的过程比较简单,篇幅很短,也不需要很详细的解说,相信了解开发的人,很容易就能搞定.之前浏览博客

SharePoint 2013 图文开发系列之应用程序页

原文:SharePoint 2013 图文开发系列之应用程序页 在SharePoint中,有两种页面类型,一种是保存在数据库中的页面,我们可以在网站的页面库中看到:还有一种叫做应用程序页,部署在服务器上,Layouts下面的页面,是应用程序页,主要是完成特定功能的页面. 特定功能的页面,听起来比较笼统,举个例子,比如说图片上传到特定文档库,文档批量迁移,权限管理等. 1.添加新建项目,选择SharePoint 2013 空项目,如下图: 2.选择场解决方案,如下图: 3.添加新项,选择应用程序页

SharePoint 2013 图文开发系列之网站栏

原文:SharePoint 2013 图文开发系列之网站栏 网站栏的本质,就是一个xml的描述文件,所以创建过程,基本就是通过Feature部署一个Xml文件,然后修改Xml文件的网站栏描述. 1.添加新项目,选择SharePoint 2013 空项目,如下图: 2.选择调试网站和解决方案类型,这里选择场,如下图: 3.添加新项,选择网站栏,如下图: 4.修改网站栏的Feature文件,方便以后识别,如下图: 5.查看网站栏的Xml文件,这是一个默认的单行文本类型,我们准备创建一个选项类型: 6