以前做一个项目,为了实现两字段联动录入的功能,采用了Infopath来自定义表单完成,具体方法如下:
例如,首先我们有一个数据源列表Country,里面有连个字段,一个是Country,一个是Province,存放着所有的源数据,
我们现在有一个LinkageList,用来输入信息,里面也有两个字段,一个是国家,一个是省会
现在我们需要在LinkageList列表中添加数据时,实现国家和省会联动,即如果你国家选择了China,那么省会就只有三个选择Guangdong,Hubei,Hunan供你选择,怎么实现呢?我们点击列表Ribbon上的自定义表单,现在就会把LinkageList列表中字段列出来给我们设置,如下:
我们先给国家字段的值进行设置,国家的数据是来自于先前建的Country列表中的Country,所以第一步我们先要给当前列表做一个数据源,选择数据-数据连接,然后选择添加,就会出现下面的界面:
按上图一样选择接收数据,然后下一步
选择从SharePoint库或列表接收数据,再下一步,输入网站的URL后点击下一步
选择我们最开始建好的Country列表,下一步
将Country和Province连个域勾选上,连续两次点击下一步
输入一个数据连接的名称,我这里定义为了Country,一定要记得勾选在打开表单时自动检索数据,不然新建项目时Dropdownlist里面什么都没有,然后点击完成,关闭。
然后选择国家的那个Dropdownlist,右键选择下拉列表框属性,选择从外部数据源获取选项,将数据源定位到刚刚添加的Country数据源
然后点击项后面的选择XPath,选择Country,确定后,勾选仅显示具有唯一显示名称的条目,确定,国家这个字段的值就设置好了,下面就来设置省会这个字段,方法和国家字段的设置差不多,关键点就在选择XPath,选择Country数据源的Province,然后点击筛选数据,添加,选择主数据源的国家等于Country数据源的Country,然后连续四次点击确定
现在保存后发布基本就能实现功能了,但是现在还存在一个问题,就是最开始国家选择American,省会选择Utah后,现在不提交数据,把国家更改为China,但省会一栏还是选择的Utah,并且可以保存,这不乱套了吗?Utah什么时候成了China的了,所以我们还需要做一步操作,给国家那个域添加一个规则,规则类型选择操作,设置省会的域值为空
然后确定,发布。再进行测试,通过。