本文描述在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);
}
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 在附件裏。