Infopath:从后面的代码中选中“Multiple Select Box”值

时间:2015-01-07 15:06:23

标签: infopath infopath2010 infopath-2007 infopath-forms-services

enter image description here

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

目前,如果我从代码中添加这两个,请说,

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

仅选择Option Two

2 个答案:

答案 0 :(得分:0)

自从我使用InfoPath以来已经有一段时间了。所以我可能在这里不合时宜。我相信,原因是你设置了两次值。一次为Option One,然后为Option Two。您需要复制infopath如何将值插入文本字段以获取所选的默认值。需要考虑的一件事是,您可能需要一组值才能以您想要的方式工作,因为这通常是Infopath如何使用多个值。

发现这篇文章会有所帮助 Pre-select items in a Multiple-Selection List Box in InfoPath 2010

答案 1 :(得分: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");