自定义操作即我们所说的Ribbon和ECB(Edit Control Block),在SharePoint 2013之前,我们可以通过在解决方案中添加XML元素来实现创建自定义Ribbon和ECB,到了2013时代,利用APP也可以做类似的事情了,接下来我们看看如何利用APP来创建列表条目的自定义操作。

除了一些细节上的配置项,创建SharePoint APP项目跟之前提到的基本一样。列表条目信息通过查询字符串传递到外部的托管页面。

首先创建一个SharePoint APP项目,名字就叫做CustomActionAPPTest。

接下来我们在Web项目中添加一个新的窗体,名字就叫做CustomActionTarget.aspx。

在页面的空DIV元素下添加一个服务器端控件:

<asp:Literal ID="Literal1"
runat="server"
Text="Hello to the world from a custom action app">
</asp:Literal>

在后台CS代码页面的Page_Load方法中添加如下代码:

Literal1.Text = string.Empty;
foreach (string queryStringParam in Request.QueryString)
{
Literal1.Text = Literal1.Text + "<br>" + queryStringParam +
" = " + Request.QueryString[queryStringParam];
}

操作完成之后如下图所示:

下面我们通过SharePoint APP项目添加自定义操作。右键点击项目节点,选择添加->新建项,选择菜单项自定义操作,名字取作MenuItemCustomActionTest,点击下一步弹出向导。

如上选择之后点击下一步,定义菜单项的文本和导航的目标页面,为文本指定一个值,选择我们之前创建的Web窗体,点击完成按钮完成创建。

我们再来创建一个自定义Ribbon。右键点击项目节点,选择添加->新建项,选择功能区自定义操作,名字取作RibbonCustomActionTest,点击下一步弹出向导。

第一个部分选择同上,点击下一步,定义Ribbon所在的位置为Ribbon.Documents.Manage,Ribbon的文本和Ribbon导航的目标页面,点击完成按钮完成创建。

创建这两个对象会生成两个Elements.xml元素定义文件,我们修改一下里面Action相关的URL的查询字符串参数(?后面的部分)为如下所示:

ECB

{StandardTokens}&amp;SPListItemId={ItemId}&amp;SPListId={ListId}&amp;SPSource={Source}&amp;SPListURLDir={ListUrlDir}&amp;SPItemURL={ItemUrl}

Ribbon

{StandardTokens}&amp;HostUrl={HostUrl}&amp;Source={Source}&amp;ListURLDir={ListUrlDir}&amp;ListID={SelectedListId}&amp;ItemID={SelectedItemId}

注意这两个参数名的值略微有些不同的,具体的查询字符串参数值可以自行探索一下,不仅限于所列,而且貌似Ribbon无法取到ItemURL这个值,有知道的朋友欢迎分享。好的,完成了,接下来执行F5部署我们的项目。

弹出浏览器之后,跳转到我们的开发人员网站,点击左侧导航的文档进入到文档库的视图页面,如果没有文档就上传一个新文档,选中我们上传的文档,点击Ribbon或者ECB菜单,就可以看到我们自定义的操作了,点击可以看到效果。

~remoteAppUrl—表示远程托管提供应用程序所在的网站页面的URL。
CustomActionTarget.aspx—实现自定义操作的目标网站的ASPX页面。
StandardTokens—为页面提供标准的APP口令,包括宿主网站URL和上下文口令。
Source—触发该自定义操作的源URL,用于操作完成后页面的跳转。
ListUrlDir/ListId—触发该自定义操作所在的列表路径/列表ID。
ItemUrl/ItemId—触发该自定义操作的列表条目URL/列表条目ID。


SharePoint 2013 开发——开发自定义操作APP的更多相关文章

  1. SharePoint 2013 图文开发系列之列表定义高级篇

    转载自  http://www.cnblogs.com/jianyus/p/3484714.html SharePoint列表库,是我们使用过程中最常用的库,下面,我们简单介绍下代码定义自定义列表,主 ...

  2. SharePoint 2013 图文开发系列之入门教程

    做了SharePoint有三年了,大家经常会问到,你的SharePoint是怎么学的,想想自己的水平,也不过是初级开发罢了.因为,SharePoint开发需要接触的东西太多了,Windows操作系统. ...

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

    SharePoint的计时器任务,又称TimerJob,由服务里的Timer服务执行,在管理中心管理,是一个类似于Windows任务计划的功能,方便定时执行一些需要的功能,以免影响服务器性能. 在Sh ...

  4. SharePoint 2013常用开发工具

    SharePoint 2013常用开发工具分享 2014-04-01 00:59 by jv9, 589 阅读, 1 评论, 收藏, 编辑 众所周知,一款好的开发工具不仅能提高项目开发效率,而且能够协 ...

  5. SharePoint 2013 本地开发解决方案以及远程调试

    转自:http://www.cnblogs.com/jianyus/p/3523387.html 在SharePoint开发中,我们需要在部署有SharePoint环境的服务器中开发,这是一件让人很苦 ...

  6. SharePoint 2013 配置开发环境,需安装VS2012插件

    原文:SharePoint 2013 配置开发环境,需安装VS2012插件 SharePoint 2013已经安装好了,接下来就是配置开发环境,安装VS2012,但是,装好了以后,发现没有ShareP ...

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

    SharePoint使用的优势,就在于开箱即用.快速搭建,SharePoint自身为我们提供了很多字段类型,已经很丰富了.但是,在实际应用中,我们还需要一些功能特殊的字段,下面,我们简单介绍下字段的开 ...

  8. 《SharePoint 2013 应用开发实战》目录

    博客地址:http://blog.csdn.net/FoxDave 第 1 章  1 ◄SharePoint概述►        1 1.1  SharePoint的发展历程 1 1.1.1  Sha ...

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

    在SharePoint中,有两种页面类型,一种是保存在数据库中的页面,我们可以在网站的页面库中看到:还有一种叫做应用程序页,部署在服务器上,Layouts下面的页面,是应用程序页,主要是完成特定功能的 ...

随机推荐

  1. <转>java 快速查找

    [Ct rl+T] 搜索当前接口的实现类 1. [ALT +/]    此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类.方法和属性的名字时,多体验一下[ ...

  2. js中style.display=""无效的解决方法

    本文实例讲述了js中style.display=""无效的解决方法.分享给大家供大家参考.具体解决方法如下: 一.问题描述: 在js中我们有时想动态的控制一个div显示或隐藏或更多 ...

  3. 第一堂java web课

    一天的课程上完,虽然很累,但是因为自己的收获,所以我很开心. 第一节课老师带我们大家学习了HTML,学了很多标签,比如:html,head,body <html></html> ...

  4. js时间显示设置

    //对日期中部分小于10的数字前边添加0 function zero(s){ return s < 10 ? '0' + s: s; } var date=new Date(), year = ...

  5. jq实现楼层切换效果

    <!DOCTYPE html> <html> <head> <style> * { margin: 0; padding: 0; box-sizing: ...

  6. python3 安装scrapy Exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/pip/req/req_install.py", line 1006, in check_if_exists解决方法

    错误代码: Exception: Traceback (most recent call last): File , in check_if_exists self.satisfied_by = pk ...

  7. Java 之 I/O 系列 02 ——序列化(一)

    Java 之 I/O 系列 目录 Java 之 I/O 系列 01 ——基础 Java 之 I/O 系列 02 ——序列化(一) Java 之 I/O 系列 02 ——序列化(二) 一 序列化概述 序 ...

  8. webService—调用webService

    Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布 ...

  9. js数量添加(如购物车添加,删减数量)

    <div class="fl shop-num ml24"><input type="button" style=" border- ...

  10. mysql 忘记root密码修改方法

    先将mysql安装bin目录(例如:c:xxx\xxx\mysql\bin  加入环境变量) 1.在命令行窗口下输入net stop mysql5 或 net stop mysql 2.开一个命令行窗 ...