本文描述在InfoPath中如何实现动态增/减dropdown list item. 废话不多说,入主题。
 
打开Visual Studio 2008,创建一个InfoPath Template 项目。
 
Design<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

在设计模式中创建一个Dropdown list,一个Button,一个TextBox:
 
Dynamic Dropdown List
 
创建一个新的repeating field:
Dynamic Dropdown List
 
将repeating field 绑定到一个Multi-Selection listbox上。
 
打开Dropdown list 的属性:
Dynamic Dropdown List
选择 "Look up values in the form's data source", 并在"Entries"里选择新建的repeating field: dpItemValue.
Dynamic Dropdown List
至此,Design工作完成。
 
Coding

在"Add" button 的属性中点"Edit Form Code...".

Dynamic Dropdown List
Visual Studio 会自动生成event handler.
向Dropdown list 中添加一个Item,实际上是增加一个dpItemValue节点。
Dynamic Dropdown ListXPathNavigator mainNav = this.MainDataSource.CreateNavigator();
Dynamic Dropdown List                        XPathNavigator myFieldsElement = mainNav.SelectSingleNode("/my:myFields", NamespaceManager);
Dynamic Dropdown List
Dynamic Dropdown List                        // Retrieve new dropdown list value.
Dynamic Dropdown List                        String newItem = getNewDPValue();
Dynamic Dropdown List                        if (!String.IsNullOrEmpty(newItem))
Dynamic Dropdown List                        {
Dynamic Dropdown List                                myFieldsElement.AppendChildElement("my", "dpItemValue", myFieldsElement.NamespaceURI, newItem);
Dynamic Dropdown List                        }
 
大功告成。Source Code 在附件里。

转载于:https://blog.51cto.com/jimma/265880

相关文章: