最近在利用SharePoint Server 2013的列表组织和存储数据,发现SharePoint列表原始不支持级联选择的功能。

谷歌百度一通以后,发现了很多通过代码实现的方案,利用第三方的插件spservices的http://spservices.codeplex.com/releases/view/119578,或者自己编段代码的http://www.cnblogs.com/jianyus/p/3812758.html(JQuery+JavaScript),但觉得都不太理想。最后发现可以利用InfoPath设计列表,不用编写一行代码,就可以轻松实现字段之间的级联互动。下面介绍一下这个方案的具体操作:

1. 配置SharePoint Server的State Service(状态服务)

如果需要利用InfoPath来设计菜单,必须启用State Service,否则列表无法正确打开。

以SharePoint场管理员身份打开管理中心,并选择配置向导

Figure 1

Figure 1

Figure 3

Figure 4

2. 使用InfoPath配置级联选择

2.1 首先创建2个父子列表,用以保存级联选项的来源。

这里我以中国的省市为例,创建一个省市的父列表,再创建一个地区的字列表,如下图

 

Figure 5

2.2 再使用InfoPath创建/便捷一个示例的列表,需要引用上面的两个父子列表

在列表中添加两个下拉列表项,分别绑定省市/地区字段,具体操作如下

Figure 6 - 绑定省市字段

Figure 7 - 绑定地市字段

Figure 8 - 设置筛选

Figure 9 - 设置筛选条件时,一定要注意选择“主”里面的字段,否则没有级联效果的

设置完成以后,通过InfoPath的预览功能,就可以验证级联效果了,然后发布到SharePoint Server中。

Figure 10 - 预览效果

2.3 配置规则,优化级联选择

通过上面配置,基本实现了级联功能。但是在选择了子项(地市)以后,如果再切换省市,你会发现子项没有清空。所以还需要配置父字段(省市)的规则来优化级联功能,实现切换父字段的值时,自动清空子项的值。

Figure 11 - 为父字段设置规则

Figure 12 - 设置域值

Figure 13 - 设置地市字段的值为空

 

通过上述设置后,基本上实现了一个比较完美的级联选择功能。

http://www.cnblogs.com/danzhang 张洪君

 

2015-3-23补充:

1. 在InfoPath中创建下列框的时候,必须选择查找类型,不能选择“手动输入选项”,如下图:

2. 在设置字段属性时,必须选择SharePoint列表节点,不要选择具体的字段名称;然后再设置“值”和”显示名称“中设置对应的字段,如下图:

利用InfoPath实现SharePoint Server 2013列表的级联选择(Cascading Drop Down List)的更多相关文章

  1. 利用AutoSPSourceBuilder和Autospinstaller自动安装SharePoint Server 2013图解教程——Part 1

    这是一篇对之前 <利用AutoSPSourceBuilder和Autospinstaller自动安装SharePoint Server 2013图解教程——Part 2>的补充.本篇博客将 ...

  2. SharePoint Server 2013开发之旅(一):新的开发平台和典型开发场景介绍

    我终于开始写这个系列文章,实际上确实有一段时间没有动笔了.最近重新安装了一套SharePoint Server 2013的环境,计划利用工作之余的时间为大家写一点新的东西. SharePoint Se ...

  3. 在 SharePoint Server 2013 中配置建议和使用率事件类型

    http://technet.microsoft.com/zh-cn/library/jj715889.aspx 适用于: SharePoint Server 2013 利用使用事件,您可以跟踪用户与 ...

  4. Team Foundation Server 2015(Update 1)集成 SharePoint Server 2013

    自TFS 2008开始,TFS就提供了与SharePoint Server的集成功能,通过多年的研发和提升,目前微软已经实现了两个服务器产品之间的完美集成.通过二者之间的集成,TFS服务器大幅提高和扩 ...

  5. 在IE11下设置SharePoint Server 2013却遇到“需要 Internet Explorer 才能使用此功能。”的解决办法

    就在昨天顺利升级到Windows 8.1 随之IE也升级到了IE11,但是当打开IE11设置SharePoint Server 2013的时候遇到了一些小情况: Figure 1使用Windows 8 ...

  6. SharePoint Server 2013开发之旅(二):使用在线的开发人员网站进行SharePoint App开发

    上一篇我已经介绍了新版本的SharePoint Server提供了四种主要的开发场景,其中一个全新的App开发模型让我们眼前一亮.这一篇我将介绍如何在线进行SharePoint App开发. 谈到Sh ...

  7. 系统升级日记(2)- 升级到SharePoint Server 2013

    最近一段时间在公司忙于将各类系统进行升级,其最主要的目标有两个,一个是将TFS2010升级到TFS2013,另外一个是将SharePoint 2010升级到SharePoint 2013.本记录旨在记 ...

  8. 开启SharePoint Server 2013 中的“微博”功能——新闻源

    熟悉SharePoint的朋友在2013之前的版本可以使用社区协作下的记事板.应用程序下的通知,来进行消息的发布,而且更有这两者的完美结合体讨论板,可供使用着根据站点属性进行添加而对现在的快消息时代, ...

  9. SharePoint Server 2013 让上传文件更精彩

    新版的SharePoint 2013 提供了多种上传与新建文件的方式,对于与系统集成紧密的IE来上传文档更加方便 使用IE开启SharePoint地址 Figure 1打开文档库,在"新颖快 ...

随机推荐

  1. Hive中创建结构体、数组以及map

    ROW FORMAT DELIMITED 分隔符设置开始语句 FIELDS TERMINATED BY:设置字段与字段之间的分隔符 COLLECTION ITEMS TERMINATED BY:设置一 ...

  2. jsp中 RequestDispatcher接口的两种跳转:forward()和include()

    在web程序中,经常是由多个Servlet来完成请求.RequestDispatcher接口就是为了多个Servlet之间的调整而实现的.该接口可以用httpSerbletRequest的getReq ...

  3. Android ListView根据项数的大小自动改变高度

    第一种:按照listview的项数确定高度 ListAdapter listAdapter = listView.getAdapter();      if (listAdapter == null) ...

  4. Util-linux-ng-2.17

    yum install -y util-linux-ng 即可安装Util-linux-ng,其中包含了非常多的软件 Util-linux-ng 的内容 安装的程序:addpart, agetty, ...

  5. Vue基础知识之vue-resource和axios(三)

    vue-resource Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必要引入jQuery.vue-resource是Vue.js的 ...

  6. PIN 引脚类型

    一个 capture filter 通常有两个或更多个输出相同类型数据的输出引脚,例如预览引脚和捕捉引脚.因此,媒体类型不是区分引脚的好方法. //相反,这些引脚通过它们的功能来区分,这些功能是使用称 ...

  7. partial function

    [partial function] functools.partial(func[,*args][, **keywords]) Return a new partial object which w ...

  8. linux进程的几个状态

    [linux进程的几个状态] 1. Linux进程状态:R (TASK_RUNNING),可执行状态&运行状态(在run_queue队列里的状态) 2. Linux进程状态:S (TASK_I ...

  9. ORACLE BI Publisher Enterprise

    二.带参数 BEGIN:{$FIRST_DAY_OF_MONTH()$} END:{$SYSDATE()$} 三\加下拉菜单值

  10. write()和print()还有<%= %>的细微区别

    1.首先介绍write()和print()方法的区别: (1).write():仅支持输出字符类型数据,字符.字符数组.字符串等 (2).print():可以将各种类型(包括Object)的数据通过默 ...