欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(八)使用SPFx命令集扩展自定义列表操作

程序员文章站 2022-07-13 13:55:04
...

        在上一篇博客(七)创建一个字段并在SharePoint Online中使用中,我们创建了一个新的字段并部署在SharePoint Online中,本文将介绍如何使用SPFx提供的命令集扩展(CommandSet Extension)来自定义一个操作按钮,并将自定义的操作按钮添加到列表中。

        首先还是使用Yeoman创建命令集扩展的解决方案:

(八)使用SPFx命令集扩展自定义列表操作

        在指定客户端组件的时候,选择Extension,然后选择ListView CommandSet Extension:

(八)使用SPFx命令集扩展自定义列表操作

        创建完毕时候打开项目,可以在HelloWorldCommandSet.manifest.json文件中看到,解决方案模板已经为我们创建好了两个command操作:

(八)使用SPFx命令集扩展自定义列表操作

    一个COMMAND_1,另一个是COMMAND_2,并且指定了它们的标题,图标和类型。下面看一下HelloWorldCommandSet.ts文件,所有的命令集扩展都要继承“BaseListViewCommandSet"这个基类,这个类提供了三个方法:

  • onInit()方法用于初始化设置。在我们的代码中并没有做什么设置,只是输出log信息。
  • onListViewUpdated()方法在页面状态改变的时候执行,例如刷新页面。代码中在这个方法中控制自定义操作按钮的显示。例如对于COMMAND_1按钮,只有当用户选择了一个item的时候才显示出来(使用visible属性来控制)
  • onExecute()方法是在点击自定义操作按钮的时候执行。代码中使用Dialog对象,在点击按钮的时候弹出对话框。

        (八)使用SPFx命令集扩展自定义列表操作

        接下来我们看一下这两个操作在列表中的样子,首先打开manifest.json文件,将id复制下来:

(八)使用SPFx命令集扩展自定义列表操作

        使用gulp serve --nobrowser命令启动本地调试环境,打开SharePoint Online中的列表,将以下查询字符串附加到列表url之后,注意其中的id的值需要提供成刚刚复制的id的值:

?loadSpfx=true&debugManifestsFile=https://localhost:4321/temp/manifests.js&customActions={"d7c64898-1076-47bc-8e30-416e902aa573":{"location":"ClientSideExtension.ListViewCommandSet.CommandBar","properties":{"sampleTextOne":"One item is selected in the list.","sampleTextTwo":"This command is always visible."}}}

        其中location的值可以是以下三种选项:

  • ClientSideExtension.ListViewCommandSet.CommandBar  --  自定义操作按钮出现在页面上方的命令栏中
  • ClientSideExtension.ListViewCommandSet.ContextMenu  --  自定义操作按钮出现在item的操作菜单中
  • ClientSideExtension.ListViewCommandSet  --  自定义操作按钮既出现在命令栏中又出现在操作菜单中

        刷新页面,会提示是否运行调试脚本,点击“加载调试脚本”

(八)使用SPFx命令集扩展自定义列表操作

        选择一个列表中的一个item项目,可以看到这两个操作已经在列表中显示出来了:

(八)使用SPFx命令集扩展自定义列表操作

        当点击任意一个按钮的时候,会弹出对话框:

(八)使用SPFx命令集扩展自定义列表操作

        接下来我们把自定义的操作部署到SharePoint Online中去,在部署之前需要介绍一下elements.xml这个文件,它是SharePoint使用的功能定义文件,其中定义了自定义操作出现在哪些列表上,出现在页面的位置等等:

(八)使用SPFx命令集扩展自定义列表操作

        其中“RegistrationId"指定自定义操作命令出现在哪些列表中,”100“是指自定义列表,如果是文档库,这里应该指定为”101“。每种列表对应的值可以参考微软官方文档。”RegistrationType“指定自定义操作命令的注册类型,可以是List也可以是ContentType,或者其他类型。Location刚刚介绍过,用于指定自定义操作在页面中的位置。”ClientSideConponentId“就是在manifest.json文件中定义的自定义扩展的Id,ClientSideComponentProperties可以指定一些属性,在自定义操作中使用。

        使用gulp package-solution命令打包:

(八)使用SPFx命令集扩展自定义列表操作

        打包完成之后会在solution文件夹中出现spfx-command.sppkg文件:

(八)使用SPFx命令集扩展自定义列表操作

        然后打开SharePoint Online的管理中心,将这个文件上传到SharePoint Online的应用程序目录中:

(八)使用SPFx命令集扩展自定义列表操作

        然后将自定义操作添加到网站应用中:

(八)使用SPFx命令集扩展自定义列表操作

        重新打开列表,确认启动了gulp serve --nobrowser,就可以看到我们自定义的操作了:

(八)使用SPFx命令集扩展自定义列表操作

         

上一篇: Linux流量监控-(iftop)

下一篇: 迷宫