本文描述在InfoPath中如何实现动态增/减dropdown list item. 废话不多说,入主题。
打开Visual Studio 2008,创建一个InfoPath Template 项目。
Design
在设计模式中创建一个Dropdown list,一个Button,一个TextBox:
创建一个新的repeating field:
将repeating field 绑定到一个Multi-Selection listbox上。
打开Dropdown list 的属性:
选择 "Look up values in the form's data source", 并在"Entries"里选择新建的repeating field: dpItemValue.
至此,Design工作完成。
Coding
在"Add" button 的属性中点"Edit Form Code...".
Visual Studio 会自动生成event handler.
向Dropdown list 中添加一个Item,实际上是增加一个dpItemValue节点。

XPathNavigator mainNav =
this.MainDataSource.CreateNavigator();

XPathNavigator myFieldsElement = mainNav.SelectSingleNode(
"/my:myFields", NamespaceManager);
// Retrieve new dropdown list value. 
String newItem = getNewDPValue();
if (!String.IsNullOrEmpty(newItem))

{

myFieldsElement.AppendChildElement(
"my",
"dpItemValue", myFieldsElement.NamespaceURI, newItem);

}
大功告成。Source Code 在附件里。