zoukankan      html  css  js  c++  java
  • Infopath自定义表单实现列表字段联动

    以前做一个项目,为了实现两字段联动录入的功能,采用了Infopath来自定义表单完成,具体方法如下:

    例如,首先我们有一个数据源列表Country,里面有连个字段,一个是Country,一个是Province,存放着所有的源数据,

    我们现在有一个LinkageList,用来输入信息,里面也有两个字段,一个是国家,一个是省会

    现在我们需要在LinkageList列表中添加数据时,实现国家和省会联动,即如果你国家选择了China,那么省会就只有三个选择Guangdong,Hubei,Hunan供你选择,怎么实现呢?我们点击列表Ribbon上的自定义表单,现在就会把LinkageList列表中字段列出来给我们设置,如下:

    我们先给国家字段的值进行设置,国家的数据是来自于先前建的Country列表中的Country,所以第一步我们先要给当前列表做一个数据源,选择数据-数据连接,然后选择添加,就会出现下面的界面:

    按上图一样选择接收数据,然后下一步

    选择从SharePoint库或列表接收数据,再下一步,输入网站的URL后点击下一步

    选择我们最开始建好的Country列表,下一步

    CountryProvince连个域勾选上,连续两次点击下一步

    输入一个数据连接的名称,我这里定义为了Country,一定要记得勾选在打开表单时自动检索数据,不然新建项目时Dropdownlist里面什么都没有,然后点击完成,关闭。

    然后选择国家的那个Dropdownlist,右键选择下拉列表框属性,选择从外部数据源获取选项,将数据源定位到刚刚添加的Country数据源

    然后点击项后面的选择XPath,选择Country,确定后,勾选仅显示具有唯一显示名称的条目,确定,国家这个字段的值就设置好了,下面就来设置省会这个字段,方法和国家字段的设置差不多,关键点就在选择XPath,选择Country数据源的Province,然后点击筛选数据,添加,选择主数据源的国家等于Country数据源的Country,然后连续四次点击确定

    现在保存后发布基本就能实现功能了,但是现在还存在一个问题,就是最开始国家选择American,省会选择Utah后,现在不提交数据,把国家更改为China,但省会一栏还是选择的Utah,并且可以保存,这不乱套了吗?Utah什么时候成了China的了,所以我们还需要做一步操作,给国家那个域添加一个规则,规则类型选择操作,设置省会的域值为空

    然后确定,发布。再进行测试,通过。

  • 相关阅读:
    Quartz实现动态定时任务
    Springboot跨域和SpringCloud跨域
    java8 LocalDate 判断一年中的标准周末和工作日
    [WIP]iOS/macOS开发中常见的宏解释
    [WIP] Objective-C Runtime调试
    [WIP] iOS课程作业
    macOS 允许任何来源的应用
    Win10系统下移动、复制、删除文件需要管理员权限的解决方法
    flutter MediaQuery获取屏幕宽度高度密度通知栏高度等屏幕信息
    Flutter 获取状态栏高度、appBar高度 和 手机屏幕宽高
  • 原文地址:https://www.cnblogs.com/leolis/p/2104306.html
Copyright © 2011-2022 走看看