0

在此处输入图像描述

我在 infopath 中有一个带有四个手动值的多项选择框。现在如何从 C# 后面的代码中检查两个选项(比如“选项一和选项三”)。

目前,如果我从后面的代码中添加这两个的话,

XPathNavigator elemYourTextBox = this.MainDataSource.CreateNavigator().SelectSingleNode("//my:MSList", this.NamespaceManager);
elemYourTextBox.SetValue("Option One");
elemYourTextBox.SetValue("Option Two");

只会Option Two被选中。

4

2 回答 2

0

自从我使用 InfoPath 以来已经有一段时间了,所以我可能在这里偏离了目标。我相信,原因是您将一个值设置了两次。一次又一次Option OneOption Two您将需要复制 infopath 如何将值插入文本字段以选择默认值。要考虑的一件事是,您可能需要一组值才能按照您想要的方式工作,因为这通常是 Infopath 处理多个值的方式。

发现这篇文章将有助于 在 InfoPath 2010 的多选列表框中预选项目

于 2015-01-08T03:56:46.897 回答
0

多选列表框绑定到 InfoPath 中的重复节点。因此,在您的代码中,您需要添加一个 MSList 节点,然后设置它的值。我相信你可以只附加节点来创建它的副本。这是一个粗略的代码示例来展示这个概念——这依赖于表单中存在的 field1 的一个实例(我的多选绑定到它),但希望至少能理解主要思想。

        XPathNavigator option = this.MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:group1/my:field1", NamespaceManager);
        this.MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:group1", NamespaceManager).AppendChild(option);
        this.MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:group1/my:field1[1]", NamespaceManager).SetValue("Option 1");
        this.MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:group1/my:field1[2]", NamespaceManager).SetValue("Option 2");
于 2015-01-09T00:15:25.990 回答