SharePoint 通过客户端API访问SharePoint状态栏
SharePoint 通过客户端API访问SharePoint状态栏
本文我们将探索微软发布的SharePoint 2010 版本提供的两个新功能。一个是状态栏,另一个是通知区域。这两个都在不打扰用户前提下提供通知功能。
SharePoint 2010版本中,微软在SharePoint站点设计和呈现层面上做出了重大改变。在SharePoint 2010中,AJAX的使用提供了非常好的用户体验。许多操作都是使用AJAX异步执行的。例如,当你编辑一个页面,试着添加新Web部件到特定Web部件区域时,Web部件列表异步加载。这使得用户像使用简单桌面应用程序一样体验功能。同样,微软给web站点用户界面添加了两个新功能,状态栏和通知区域。本文中,我们将通过例子探索这两个功能。
状态栏
状态栏出现在功能区标签正下方。看下面的图片。在SharePoint 2007中,通知消息被用来通知用户一些悬而未决的操作或者页面编辑遗漏的操作等。例如,在发布网站,如果你已经编辑了一个页面,没有保存或签入它,如果你尝试导航到其他页面,通知消息会显示出来通知你还没有保存页面。但是在SharePoint 2010中,这个通知系统得到增强。现在这些类型的信息在状态栏中显示。下面图给你看到SharePoint 2010站点里状态栏的样子。注意页面上黄色背景的文本。状态栏指示道:This page contains content or formatting that is not valid. You can….
状态栏通常用来显示一些不变的信息或消息给用户。微软允许开发者通过自定义状态栏,在状态栏提供他们自己的信息。所以,开发者可以添加或附加他的信息到状态栏,只要他喜欢或觉得相关的东西。
自定义状态栏
通过客户端和/或服务器端代码,状态栏可以被拓展或自定义。通常我们说大多数在状态栏显示的消息包含HTML文本。所以,使用这种类型的HTML消息,开发者可以添加图片和链接到其他页面,他也可以提供样式使得消息变得好看。并且,状态栏被提供以四种不同颜色,基于重要性或优先级来显示。他们是红、绿、蓝和黄。为了使用客户端API自定义状态栏,你必须使用SP.UI.Status类。这个类只包含5个方法,提供与状态栏的交互。文件SP.debug.js提供SP.UI.Status类包含的每个方法的详细信息。为了从服务器端使用状态栏,你需要使用SPPageStatusSetter类。这个类是Microsoft.SharePoint.WebControls命名空间的一部分。这个SPPageStatusSetter类提供了更加简单的API,你可以调用一个方法AddStatus。SPPageStatusControl类也可以被用来从服务器端与状态栏交互。本文我们只探讨客户端API,看看如何使用JavaScript与状态栏进行交互。这之前我们将获得客户端SP.UI.Status类中每个方法的一些基础信息。
addStatus:这个方法允许你提供标题、在状态栏显示的HTML信息,指定消息是否在状态栏初始化时显示的逻辑值。这个方法返回新状态的状态ID,你可以在其他方法中使用这个ID。
appendStatus:这个方法允许你附加状态消息到现有的状态消息。你需要提供现有状态的状态ID,以及你要作为参数附加的HTML消息。
updateStatus:这个方法允许你更新现有状态信息。你需要提供现有状态ID,以及作为参数的新状态信息的HTML消息。
setStatusPriColor:这个方法允许你设置状态栏的背景色,给用户视觉提示。例如,坏消息设置为红色,好的则设置为绿色。你需要提供要改变颜色的状态ID,以及作为参数的颜色值。可能的颜色值有:red,blue,green或yellow。
removeStatus:这个方法移除状态ID(作为参数)指定的状态消息。
removeAllStatus:这个方法移除所有的状态消息。你也可以提供移除消息后的状态栏是显示或隐藏的逻辑值。大多数时间是true。
现在我们将看看如何使用客户端API给状态栏显示我们自己的消息。首先创建一个SharePoint 2010 站点(如果你没有的话);如果有,导航到这个站点。
好了。在添加内容编辑器Web部件到页面之前,我们将写一些JavaScript代码来给页面添加状态栏。如下:
你可以看到上面的代码,我们使用了SP.UI.Status.addStatus方法来添加我们的消息到状态栏。保存这个文本文件,命名如statusbar.txt。
现在我们将上载此文件到站点的一个文档库中。
现在,在首页添加一个内容编辑器Web部件。点击页面选项卡的编辑页面。
下一步,点击添加Web部件,在“媒体和内容”类别,选择内容编辑器,添加。
现在,编辑此内容编辑器Web部件,在内容链接文本框,输入之前我们的statusbar.txt文本链接地址。例如http://192.168.92.129/Shared%20Documents/statusbar.txt.。
点击确定关闭Web部件任务窗格。我们可以看到内容编辑器中有一个按钮Create Status。
现在,当你点击“Create Status”按钮时,状态栏将显示你在JavaScript代码中提供的消息,并且通知消息弹出状态ID。
现在,我们将探索SP.UI.Status类剩下的方法。
打开我们的statusbar.txt文件,写下如下代码:
保存你的文件,覆盖之前。
现在,当你刷新你的站点首页时,你会看到更多的按钮。
现在,核查一下每个按钮的功能,看对状态栏有什么影响。这就交给你了。
通知区域
我们已经看到状态栏用来给用户提供一些固定的信息或消息,而不打扰他们。同样,通知区域也用来显示一些暂时的消息给用户。由于SharePoint 2010现在使用更多的AJAX,为了通知用户一些异步过程正在进行,会用到这个通知区域。请看下图,“Deleting...”信息在页面右侧通知区域显示。这表明所选中的文档在删除中。
通知区域在你自定义开发中很有用,当你执行一些异步操作,并且想让用户知道操作正在进行,等待结束。
像状态栏一样,微软提供了通知的客户端API。这个通知API限于创建和移除功能。类SP.UI.Notify使用来自客户端的通知。这之前我们将获得SP.UI.Notify类提供的方法的一些信息。
addNotification:这个方法允许你提供要显示的HTML消息。这个方法也是用逻辑值参数决定通知是否粘附在页面上。如果false,则通知5秒后消失。这也包含工具提示文本和处理onclick事件的函数名,当通知区域被用户点击时。最后两个参数是可选的。这个addNotification方法返回通知ID,可用来在removeNotification方法中移除通知。
removeNotification:这个方法基于通知ID移除通知。
现在,写下如下代码,保存为notification.txt。
像之前一样上载到文档库,添加内容编辑器,在内容链接引用notification.txt文件。
当你点击“Create Notification”按钮时,它首先提示你通知ID,然后显示通知(带有你自己的消息)。本例中,我们创建粘附的通知,所以点击“Remove Notification”可以移除通知。
所以,我们在自定义开发中就使用了状态栏和通知区域,获得更好用户体验,并提供一些健壮的应用程序。
希望你很享受这篇文章。
欢迎你在文章下留言。谢谢。