SharePoint 2013 开发——开发并部署webpart
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}&StrProp=_myStrProp_&IntProp=_myIntProp_&BoolProp=_myBoolProp_&EnumProp=_myEnumProp_&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处于调试状态下才可以进行访问测试。
SharePoint 2013 开发——开发并部署webpart的更多相关文章
- SharePoint 2013 图文开发系列之列表定义高级篇
转载自 http://www.cnblogs.com/jianyus/p/3484714.html SharePoint列表库,是我们使用过程中最常用的库,下面,我们简单介绍下代码定义自定义列表,主 ...
- SharePoint 2013 图文开发系列之计时器任务
SharePoint的计时器任务,又称TimerJob,由服务里的Timer服务执行,在管理中心管理,是一个类似于Windows任务计划的功能,方便定时执行一些需要的功能,以免影响服务器性能. 在Sh ...
- SharePoint 2013 本地开发解决方案以及远程调试
转自:http://www.cnblogs.com/jianyus/p/3523387.html 在SharePoint开发中,我们需要在部署有SharePoint环境的服务器中开发,这是一件让人很苦 ...
- SharePoint 2013常用开发工具
SharePoint 2013常用开发工具分享 2014-04-01 00:59 by jv9, 589 阅读, 1 评论, 收藏, 编辑 众所周知,一款好的开发工具不仅能提高项目开发效率,而且能够协 ...
- SharePoint 2013 图文开发系列之入门教程
做了SharePoint有三年了,大家经常会问到,你的SharePoint是怎么学的,想想自己的水平,也不过是初级开发罢了.因为,SharePoint开发需要接触的东西太多了,Windows操作系统. ...
- SharePoint 2013 App 开发—SharePoint Hosted方式,
这篇文章会依据简单的Demo,介绍一下SharePoint Hosted 方式开发App 的步骤和说明. 这种方式的环境相比较Office 365 要麻烦一些,如果不可以连接到Internet 或者还 ...
- SharePoint 2013 配置开发环境,需安装VS2012插件
原文:SharePoint 2013 配置开发环境,需安装VS2012插件 SharePoint 2013已经安装好了,接下来就是配置开发环境,安装VS2012,但是,装好了以后,发现没有ShareP ...
- SharePoint 2013 APP 开发示例 (二)获取用户信息
SharePoint 2013 APP 开发示例 (二)获取用户信息 这个示例里,我们将演示如何获取用户信息: 1. 打开 Visual Studio 2012. 2. 创建一个新的 SharePo ...
- SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)
上个示例(SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API))是基于JavaScript,运行在web browser内去访问REST AP ...
- SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API)
虽然 JQuery 也能通过授权header实现跨域, 但SharePoint 提供了更简单的方法,它被实现在SP.RequestExecutor里 .它能访问跨域的服务包括REST AP ...
随机推荐
- SQL 比较时间大小
比较字符串类型的时间大小 数据库中的时间是varchar类型的,MySql使用CURDATE()来获取当前日期,SqlServer通过GETDATE()来获取当前日期 1. 直接使用字符串来比较 注意 ...
- 配置Java EE Eclipse+Tomcat开发环境
以下将详细介绍在Eclipse下搭建Java EE开发环境的每一步, 环境:Win 7 + JDK 1.7 + Eclipse IDE for Java EE Developers 3.7 +Tomc ...
- NDK与JNI
什么是NDK(android native develop kits) :android 本地开发工具集,可以把c/c++编译成一个linux下可以执行的二进制文件 java代码里面就可以通过jni ...
- MATLAB 编程风格指南及注意事项
MATLAB编程风格指南Richard Johnson 著Genial 译MATLAB 编程风格指南Richard JohnsonVersion 1.5,Oct. 2002版权: Datatool 所 ...
- Machine Learning - 第3周(Logistic Regression、Regularization)
Logistic regression is a method for classifying data into discrete outcomes. For example, we might u ...
- jquery学习笔记1
(1) jQuery的Id选择器: $("#btnShow") (2) 事件绑定函数 bind() $("#btnAdd").bind("click& ...
- Qt之QSizePolicy
简述 QSizePolicy类是一个描述布局水平和垂直方向调整策略的属性. 大小策略会影响布局引擎处理部件的方式,部件加入布局以后,会返回一个QSizePolicy,描述了其水平和垂直方向的大小策略. ...
- hdu----(2586)How far away ?(DFS/LCA/RMQ)
How far away ? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- Pinyin4Net
.net使用的汉字转拼音库.Pinyin4Net 是直接从 Pinyin4J 翻译过来的,很多代码甚至是直接copy的. 用法与pinyin4j完全相同,具体请查阅pinyin4j文档. —— 查看更 ...
- SASS学习笔记1 —— 安装、编译和调试
一.什么是SASS SASS是一种"CSS预处理器"(css preprocessor)的开发工具,为CSS加入编程元素,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的 ...