SharePoint:扩展DVWP - 第17部分:为实现可维护的下拉框创建关系列表

本文的内容对于管理员来说都是些基础的SharePoint操作 ,目的是为接下来的DVWP扩展作准备。有经验的读者请略过。

转入正题,不论是国家和省份,规格和颜色,职位和地点,等等都可以实现级联——或称为范围限制——即一个下拉框的可选项是基于另一个下拉框的选择项,以此来提升可用性。

但在开始实现下拉框的级联之前,我们首先需要在数据之间建立关系。在多数情况下(如规格/颜色;职位/地点),我们还要使得内容的所有者可以方便的修改这些关系。SharePoint自带的选项型的栏并不是做这件事的最佳选择,因为选项类型的栏的选项数据是“隐藏”在该栏的定义里的。

用查阅项的栏实现起来更加直观一些。同时,这种方式也是我们接下来实现下拉框的级联所必需的。

注:本文中的很多想法都来源于Marc Anderson在jQuery Library for SharePoint Web Services(即SPServices)论坛中的一些讨论

级联下拉框对应的网站栏

如何使下拉框的选项在一个分组下统一维护,并且可以供其他人在多个地方使用呢?比如,HR可能需要明确定义职位的名称,而经理可能是真正使用该职位名称来筛选雇员的人。因此,我们如何设计才能在整个公司内部“重用”数据呢?

答案:使用网站栏,在前面的博文中我们对此进行了讨论。

假设你已经按照上一篇中的方法准备好了Countries和States的数据,那么现在你有两个数据列表了。接下来,在设置关系前,你需要一个列表来存放关系数据

所有的关系

下拉框的级联依赖于两个下拉框中数据间的关系。所以,首先我们要为每套数据(比如Countries和States)创建一个列表;然后,还需要一个列表来描述两者的关系。

下面让我们设置关系列表。

1、点击“网站操作”->“创建”

2、在“自定义列表”下,点击“数据表视图中的自定义列表”

3、在本例中,我们将关联Countries和States,所以将列表命名为:RELCountryStates

我们并不想要在“快速启动”栏上显示此列表(根据你的实际需求选择)。

注意:这里用不含空格的字母命名关系列表,这样能够得到一个无需编码转换的名称,将有助于我们将来在jQuery脚本中对其引用。这一点对于中文名称来说更需要注意。我们会在下一步中更新其“显示名称”。

4、现在,你就可以看到一个数据表视图的列表了。我们对其进行修改,然后再填充数据。点击“设置”->“列表设置”

  • 修改名称
    • 在一般设置下,点击“标题、说明和导航”
    • 修改名称并根据需要填写一些描述(比如 Country-State Relationships)
    • 点“保存”按钮
  • 移除附件
    • 在一般设置下,点击“高级设置”
    • 在“附件”下,点击“禁用”
    • 点“确定”按钮(两次)
  • 添加网站栏
    • 点击“从现有网站栏添加”
    • 点选所有需要的网站栏并点击“添加>”按钮。这里如果你事先将所需的网站栏放在单独的分组下,将非常方便查找。
    • 保持“添加到默认视图”选框为选中状态并点击“确定”

5、点击面包屑导航中的列表名,返回到数据表视图。

可以看到数据表中已经出现了Countries和States网站栏

6、在填充关系数据前,你应该已经准备好了相应列表的数据。如果还没准备,那么现在就准备吧(上一次,我分享了为网站栏所需的信息来源列表快速填充数据的方法)

7、接下来我们需要为配置好的关系列表填充关系数据。为每一个网站栏States中的State添加一条记录关联到其对应的Country。

在这里,会显示下拉框供我们从所有可用的值中进行选择。

8、一条一条的填写太费事了,所以我们将采用和上一次填充网站栏列表时类似的方法进行填充,一次性粘贴整个列表到该数据表。但是这里会在标题栏上遇到一点小问题,默认标题是必填项。我们有如下选择:

  • 我们可以把标题改为可选项(如果需要,还可以在当前视图中将其隐藏)
  • 我们可以将其改为可选项并创建一个工作流来把相应网站栏的值连接起来生成一个唯一的标题。(不推荐)
  • 我们可以利用Excel创建好整张Country-State Relationship表,然后整个粘贴到这里。

下一次:我们将通过第一种方式快速的填充数据;然后再通过Excel来实现。

 

参考资料

SharePoint: Extending the DVWP – Part 17: User-Managed Dropdowns – Creating a Relationship list

posted @ 2010-09-10 14:53  Sunmoonfire  阅读(1885)  评论(0编辑  收藏  举报