设为首页 收藏本站
查看: 1089|回复: 0

[经验分享] SharePoint 2010 UI 定制化系列之定制Ribbon: Server Ribbon 架构的探讨和理解

[复制链接]

尚未签到

发表于 2015-9-27 03:17:57 | 显示全部楼层 |阅读模式
  SharePoint 2010 UI 定制化系列之定制Ribbon: Server Ribbon 架构的探讨和理解   
  Server Ribbon 架构的探讨和理解
  SharePoint 2010
  当在SharePoint Objects 工作时,Server ribbon在Microsoft SharePoint Foudation 中创建一致的UI。ribbon顶级的元素是Tabs。Tabs在网站顶部交错排列。每个Tab都由群组构成。这些组包含控件集。每个组可以包含多个控件和定义这个组的标签。这些组里面的控件包含buttons, drop-down menus, check boxes, combo boxes, split buttons, and galleries.这些控件都有唯一的命令。
DSC0000.png
  Server Ribbon 的对象模型
DSC0001.png
  Ribbon使用ECMAScript (JavaScript, JScript) object model and the server object model.
  Server对象

  • IRibbonMenu –用来实现ribbon的接口
  • SPRibbonButton –在ribbon里面的button
  • SPRibbonCommand –在ribbon控件的命令
  • SPRibbonMenu – ribbon当前的菜单
  • SPRibbonMenuItem – Ribbon菜单的一个控件
  • SPRibbonMenuSection –Ribbon菜单的一个部分。

  • SPRibbonPopulateQueryCommand –代表Ribbon 的一个从xml填充动态菜单的命令 SPRibbonQueryCommand –代表一个QueryCommand 事件的ribbon命令。   ECMAScript 对象
  • SP.Ribbon.PageManager
  • CUI.Page.CommandDispatcher

  • CUI.Page.PageComponent   XML Used for the Server Ribbon
    DSC0002.png
      You can define and customize the Server ribbon by using XML in a Feature or through a user
      你可以通过在一个Feature或者通过用户定制操作,用xml定义和定制这些server ribbon(SharePoint 2010 UI 定制化系列之如何使用SharePoint Designer 2010定制Ribbon UI操作)。Xml 可以用来定义每个tab,group,和里面的控件。Tab元素包含一群组元素。每个群组包含多个组元素。这些控件类型在server ribbon有列出来。下面是一个简单例子:xml code 定制ribbon
      <?xml version="1.0" encoding="utf-8"?>
      <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <CustomAction
      Id="Ribbon.WikiPageTab.CustomGroupAndControls"
      Location="CommandUI.Ribbon"
      RegistrationId="100"
      RegistrationType="List">
      <CommandUIExtension>
      <CommandUIDefinitions>
      <CommandUIDefinition
      Location="Ribbon.WikiPageTab.Groups._children">
      <Group
      Id="Ribbon.WikiPageTab.CustomGroup"
      Sequence="55"
      Description="Custom Group"
      Title="Custom Group"
      Command="EnableCustomGroup"
      Template="Ribbon.Templates.Flexible2">
      <Controls Id="Ribbon.WikiPageTab.CustomGroup.Controls">
      <Button
      Id="Ribbon.WikiPageTab.CustomGroup.Controls.CustomButton1"
      Command="CustomButtonCommand1"
      Image16by16="/_layouts/images/FILMSTRP.GIF"
      Image32by32="/_layouts/images/PPEOPLE.GIF"
      LabelText=""
      TemplateAlias="o2"
      Sequence="15" />
      </Controls>
      </Group>
      </CommandUIDefinition>
      </CommandUIDefinitions>
      <CommandUIHandlers>
      <CommandUIHandler Command="EnableCustomGroup" />
      <CommandUIHandler Command="CustomButtonCommand1" CommandAction="javascript:alert('Hello, world!');" />
      </CommandUIHandlers>
      </CommandUIExtension>
      </CustomAction>
      </Elements>
      在sharepoint foundation这个ribbon可以通过xml和ECMAScript (JavaScript, JScript)定制。这些xml定义在 ribbon上的这些控件;ECMAScript在一个页面上展现操作或者展现一个对象。你可以用ECMAScript或者建立在ECMAScript的功能。你还可以添加你自己的ECMAScript到页面上,并用它们和ribbon进行交互。如果还想了解更多:你可以看看定制 Server Ribbon.
      Server Ribbon 交互
    DSC0003.png
      Ribbon使用多个对象来与页面交互,必须知道是控件怎么enabled,控件的状态,什么时候刷新。Server ribbon的交互是通过CommandDispatcher, PageManager, and PageComponent objects 这些对象,当然还有其他对象。每个对象在与ribbon的交互都扮演一个很重要的角色。
      
      PageManager初始化所以控件和为ribbon注册PageComponent对象.页面上就存在PageManager的一个实例了。
      
      CommandDispatcher控制所有PageComponent对象和所有他们可以控制的命令。当页面上的接收到一个命令的时候,CommandDispatcher接收这个命令和传递给PageComponent集合。
      
      一个PageComponent在ECMAScript (JavaScript, JScript)被创建,还有,控制命令传递给CommandDispatcher。在PageComponent添加到页面之后,你可以使用ECMAScript创建一个PageComponent的实例和用PageManager注册它们。那么,PageComponent可以输出你定义在ribbon xml的命令了。
      Server Ribbon 上的控件
    DSC0004.png
      Server ribbon包含多种类型的控件,包含简单的控件,像heck boxes, buttons, and combo boxes.当然也有比较复杂的,像split button or flyout anchor,下面列出详细的控件:
      

      类型
      描述
      Button
      A simple button used to perform an action.
      Checkbox
      A check box used to select an option.
      Color Picker
      A grid used to select a color or style.
      Combo Box
      A list used to select a value by clicking or typing.
      Drop Down
      A list used to select a value by clicking.
      Flyout Anchor
      为打开的菜单定义锚点的button
      Insert Table
      10x10表格,指定维度。Defines a menu control for inserting a table that contains a variable number of cells.
      Label
      A line of text used to provide information.
      Menu
      A container used to show pop-up menus.
      Menu Section
      用来分隔菜单的控件,它可以用一个标题和包含自己的控件
      MRU Split Button
      由button下拉菜单组成的控制,用来显示最近使用的项目。
      Spinner
      打字插入一个值或者使用箭头来循环这些值的控件。
      Split Button
      Button和menu结合的控件.
      Text Box
      A control used to enter text.用来输入文字的
      Toggle Button
      切换状态的按钮
      



  •        英文资料: http://msdn.microsoft.com/en-us/library/ee534959.aspx

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-119210-1-1.html 上篇帖子: 03 下篇帖子: 规划一个SharePoint的解决方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表