本文描述在infopath中如何实现动态增/减dropdown list item. 废话不多说,入主题。
打开visual studio 2008,创建一个infopath template 项目。
<b>design</b>
在设计模式中创建一个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工作完成。
<b>coding</b>
在"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 在附件里。