自定义操作即我们所说的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. mac中openfire启动失败的解决方式

    不知为何,几次出现这个问题了 解决方法:使用终端命令 1:sudo chmod -R 777 /usr/local/openfire/bin 2:cd /usr/local/openfire/bin ...

  2. css-高度自适应的问题(body高度问题)

    css-高度自适应的问题 对象height:100%并不能直接产生效果,是因为跟其父对象有关. #center{ height:100%; } 上面的css样式是无效的,不会产生任何效果. 需要改写: ...

  3. win7下载

    正式版WIN7的64位旗舰版 http://pan.baidu.com/share/link?shareid=60038&uk=3960800092 下面是正式win8Windows 8 64 ...

  4. 【EPplus】Column width discrepancy

    description Hi Jan, I have noticed that when I set a column width there is a discrepancy between the ...

  5. hdu---1024Max Sum Plus Plus(动态规划)

    Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  6. IE中JavaScript 的异常处理

    错误类型 编程中我们会遇到四种错误:编译错误.逻辑错误.输入/验证错误.运行时错误,但是在JavaScript中我们只能最后两种错误. JavaScript 1.5定义了六种错误类型: EvalErr ...

  7. 读书笔记2:HTTP协议

    HTTP是什么 HTTP定义 HTTP( Hypertext Transfer Protocol, 超文本传输协议) 是在万维网上进行通信时所使用 的协议方案. HTTP的地位 了解HTTP协议的地位 ...

  8. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  9. 转载:javascript面向对象编程:非构造函数的继承

    一.什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人". var Chinese = { nation:'中国' }; 还有一个对象,叫做&qu ...

  10. JDE隐藏Constant等(Hide Object)

    Grid中隐藏列,列值可以使用属性配置,但是列表头Constant需要用函数修改,如下所示: