编程知识 购物 网址 新闻 笑话 | 软件 日历 阅读 图书馆 China
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
vbs/VBScript DOS/BAT hta htc python perl 游戏相关 VBA 远程脚本 ColdFusion ruby专题 autoit seraphzone PowerShell linux shell Lua Golang Erlang 其它教程 CSS/HTML/Xhtml html5 CSS XML/XSLT Dreamweaver教程 经验交流
站长资讯 .NET新手 ASP.NET C# WinForm Silverlight WCF CLR WPF XNA VisualStudio ASP.NET-MVC .NET控件开发 EntityFramework WinRT-Metro Java C++ PHP Delphi Python Ruby C语言 Erlang Go Swift Scala R语言 Verilog 其它语言 架构设计 面向对象 设计模式 领域驱动 Html-Css JavaScript jQuery HTML5 SharePoint GIS技术 SAP OracleERP DynamicsCRM K2 BPM 信息安全 企业信息 Android开发 iOS开发 WindowsPhone WindowsMobile 其他手机 敏捷开发 项目管理 软件工程 SQLServer Oracle MySQL NoSQL 其它数据库 Windows7 WindowsServer Linux
   -> SharePoint -> SharePoint 2013:自定义ECB菜单项的添加 -> 正文阅读

[SharePoint]SharePoint 2013:自定义ECB菜单项的添加

本文分别介绍了两种常用的添加ECB菜单项的方式。
声明式创建
这也是微软最佳实践推荐的方式。在VS中创建一个SharePoint空解决方案,并添加一个“空元素”类型的SPI。


在Elements.xml中,定义一个CustomAction,重点关注一下其中高亮部分的属性(本例在文档内容类型的项上添加了一个菜单项,点击导航到一个自定义应用程序页面,并传递项所在的列表的Id作为参数):


添加到Feature,并部署。效果如下:


服务器对象模型创建
 这里会用到Feature的事件处理程序。本例同时还演示了如何指定Url,并且用对话框的方式打开。同时,还会传递网站Url,所选列表项的ID给目标应用程序页面。

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
    SPSite site = (SPSite)properties.Feature.Parent;
    SPWeb web=site.RootWeb;
    try{
        
                   SPList list = web.Lists["Announcements"];
                   web.AllowUnsafeUpdates = true;
                    if (list.UserCustomActions.Count > 0)
                    {
                        foreach (SPUserCustomAction action in list.UserCustomActions)
                        {
                            if (action.Name == "ECBItemCustomization")
                            {
                                action.Delete();
                                list.Update();
                                break;
                            }
                        }
                    }
                    SPUserCustomAction customaction = list.UserCustomActions.Add();
                    customaction.Name = "ECBItemCustomization";
                    customaction.Location = "EditControlBlock";
                 
                    //customaction.ImageUrl = "/_layouts/15/images/demo/workflows.gif";
 
                    string cAction = @"javascript: var options = {
                                                url: '{SiteUrl}' + '/_layouts/15/demo/page.aspx/?WorkItemID={ItemId}',
                                                allowMaximize: false,
                                                width: 500,
                                                height: 440 };
                                            SP.UI.ModalDialog.showModalDialog(options);";
                    customaction.Url = cAction;
                    customaction.Sequence = 106;
                    customaction.Title = "Demo ECB Title";
                    customaction.Update();
                    list.Update();
                    web.AllowUnsafeUpdates = false;
                    
          }
          catch{ }
 }

相应的,要在Feature关闭时移除我们的ECB项:

public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
    SPSite site = (SPSite)properties.Feature.Parent;
    SPWeb web=site.RootWeb;
    try{
        
                   SPList list = web.Lists["Announcements"];
                   web.AllowUnsafeUpdates = true;
                    if (list.UserCustomActions.Count > 0)
                    {
                        foreach (SPUserCustomAction action in list.UserCustomActions)
                        {
                            if (action.Name == "ECBItemCustomization")
                            {
                                action.Delete();
                                list.Update();
                                break;
                            }
                        }
                    }
                    
                    web.AllowUnsafeUpdates = false;
                    
          }
          catch{ }
}

为了看最终效果,添加了一个demo\page.aspx应用程序页面。接收url参数,然后显示相应的通知标题。代码比较简单,就不贴了。部署看效果:



注意:与SharePoint 2010的ECB不同的是,SharePoint 2013的ECB会忽略ImageUrl这一属性。因为从前面的图中也可以看出,2013的ECB项左侧都是不带图标的。
参考资料
how to apply custom action in ECB only for document item
Add Custom Action To SharePoint Edit Control Block
  SharePoint 最新文章
SharePoint 2013 Workflow Manager 1.0 卸载
SharePoint 2013 Workflow Manager 1.0 远程
SharePoint 2010 使用Install
SharePoint Online 创建和使用栏
SharePoint 2010管理中心服务器提示“需要升
SharePoint Online 创建资产库
把Sharepoint Desinger 工作流部署到生产环
Sharepoint 2013列表视图和字段权限扩展插件
笑男手札:客户的banner和logo哪里去了?
SharePoint 2013 对象模型操作"网站设
上一篇文章      下一篇文章      查看所有文章
加:2015-03-30 07:09:18  更:2017-05-16 16:19:02 
 
360图书馆 软件开发资料 购物精选 新闻资讯 Chinese Culture 三丰软件 开发 中国文化 阅读网 日历 万年历 2019年12日历
2019-12-8 18:52:11
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  编程知识