最近使用InfoPath开发点东西,想实现两个下拉列表实现联动。

需求如下:

下拉列表field1值为A时,下拉列表field2选项有A1、A2

下拉列表field1值为B时,下拉列表field2选项由B1、B2

下面我们开始设计表单。

1、创建两个下拉列表:field1、field2

2、field1列表中手工添加值A、B 这两个选项

3、设计XML

<?xml version="1.0" encoding="utf-8" ?>
<States>
    <State>
        <value>
            <string>A1</string>
        </value>
                <value>
            <string>A2</string>
        </value>
    </State>
</States>

4、添加数据源

点“工具”—〉“数据链接”—〉“新建”按钮—〉选择“新建连接”中的“仅接收数据”—〉点“下一步”

选择“XML文档”—〉点“下一步”—〉选择浏览按钮,加载刚创建的XML文件—〉点“下一步”—〉点“下一步”

—〉点“下一步”—〉点“完成”—〉点“关闭”

创建完后,我们可以在数据源中看到“DB” 辅助数据源

5、field2 绑定辅助数据源

6、创建field1 Changed事件

(注:工具—〉表单选项—〉编程中 可以选择编程语言,下面我们选择用C#)

public void InternalStartup()
{
    EventManager.XmlEvents["/my:myFields/my:field1"].Changed += new XmlChangedEventHandler(field1_Changed);
}

public void field1_Changed(object sender, XmlEventArgs e)
{
    DataSource data = this.DataSources["DB"];

XPathNavigator navigator = data.CreateNavigator().SelectSingleNode("//State/value");
    XPathNavigator lastRange = navigator.SelectSingleNode("//State/value");
    navigator.DeleteRange(lastRange);
    if (e.Site.CreateNavigator().SelectSingleNode("/my:myFields/my:field1", NamespaceManager).Value == "A")
    {
        navigator.InnerXml = "<value><string>A1</string></value><value><string>A2</string></value>";
    }
    else
    {
        navigator.InnerXml = "<value><string>B1</string></value><value><string>B2</string></value>";

}
}

列表设置就到此结束,下面我们可以浏览下效果

 

根据评论,咱们添加规则,使联动能在浏览器上使用。

操作如下:

1、双击 field1下拉列表

2、点“规则”按钮—〉点“添加”

3、在规则1种,添加设置条件 field1=“A”   添加两个操作  field2=“A1”  field2=“A2 ”

重复步骤2、3,添加规则2,添加设置条件 field1=“B”   添加两个操作  field2=“B1”  field2=“B2 ” 

转载于:https://www.cnblogs.com/Anlycp/archive/2009/07/14/1523201.html

VSTA InfoPath如何实现下拉列表联动相关推荐

  1. excel下拉列表联动_动态数组的Excel下拉列表

    excel下拉列表联动 Select a region name in one Excel drop down list. Then, in the next drop down list, sele ...

  2. excel下拉列表联动_国家和城市的Excel下拉列表

    excel下拉列表联动 In Excel, you can use data validation to create drop down lists on a worksheet. Usually, ...

  3. ajax初级示例(下拉列表联动)

    下拉列表联动效果如下动图: 数据库 表字段的信息 新建web项目 jar包及js 实体对象 index.jsp <%@ page language="java" conten ...

  4. 二级下拉列表联动 select 网页 html5

    二级下拉列表联动 select 网页 html5 写在前面: 一.效果展示. 二.代码. 三.完整版代码,下载链接. 四.声明. 写在前面: 本文只是 学院.专业 二级选择的联动下拉列. 学院.专业. ...

  5. WPS表格 下拉列表 两级下拉列表联动 多级下拉列表联动

    一.认识下拉列表 在提起下拉列表的时候,大家应该都是这个印象(如图).在这里我先给大家介绍在WPS表格里建立下拉列表的两种方法,直接使用"下拉列表"功能简单方便,或者使用" ...

  6. WPS应用之下拉列表 和 多级下拉列表联动

    ** wps 中 下拉列表和多级下拉列表的使用 ** 一,应用目的 期望: 第一列下拉列表选择完 人员类型之后 ,可以在 后面的列中自动 填充 人员对应的 薪资. 人员ID . 备注信息等. 这样在制 ...

  7. ajax实现下拉列表联动

    下拉框代码 <fieldset style="margin-bottom:5px;"> <div class="form-group"> ...

  8. js 省市下拉列表联动

    1.定义 城市 数据数组 2.得到 当前 所选择 的 省 3.得到 当前省 在 城市数组中的位置 4.得到 当前省 所辖制的 地市 5.填充 城市 下拉选单 ---------- 示例代码如下 < ...

  9. php日期下拉列表联动,究了一下连动下拉菜单,共享一下,希望_php

    php代码:-------------------------------------------------------------------------------- List http://w ...

最新文章

  1. java两个jre_为什么会有两个jre?060925(原创)
  2. python遍历文件夹下所有文件大小_python遍历文件夹——两种遍历本地文件记录文件夹个数、文件数及文件大小的方法...
  3. 如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)
  4. Java一种错误的实例化方法:在默认无参构造函数中进行实例化
  5. Java网络编程从0——》入门
  6. 论文浅尝 | Reinforcement Learning for Relation Classification
  7. 低代码,填补业务技术鸿沟 or 紧贴业务的开发时代?
  8. JAVA API----Date类
  9. 第四:SpringBoot生成Api管理mysql内保存的测试数据(接口自动化平台扩展)
  10. 创业者如何更好地认知世界?
  11. 数据结构上机实践第四周项目2 - 建设“单链表”算法库
  12. unix 时间戳转化为 日期格式
  13. 完美解决 Ubuntu 18.04 安装网易云音乐 不能正常点击启动问题
  14. Scala入门(一):直接在eclipse上安装Scala IDE
  15. 微信终于能注册小号了,无需绑定手机号!
  16. 计算机左右手控制的按键,采用改进按键布局方法的计算机键盘技术
  17. 在vue中禁止input框和textarea编辑的操作
  18. DataStream API【1】
  19. 视频驱动V4L2子系统驱动架构
  20. 受尽苦难而不厌_信息安全工程师正在为确保我们的安全而苦难

热门文章

  1. 2.8 Adam 优化算法
  2. opencv-api houshlinesp
  3. opencv 轮廓层次结构
  4. 阿里云-对象存储 OSS > 开发指南 > 基本概念
  5. Java基础学习总结(161)——Java 重试机制
  6. c++builder 运行网站的api_欧美音乐网站Python爬虫项目实战
  7. mysql8+新语法_MySQL8.0新特性
  8. 举例 微积分 拉格朗日方程_变量数学时代——微积分的发明
  9. 从C# 3.0到F#
  10. 国外排行前十的Python开源项目,短时间打造无数超级“黑客”!