天天看点

Dynamic Dropdown List

本文描述在infopath中如何实现动态增/减dropdown list item. 废话不多说,入主题。

打开visual studio 2008,创建一个infopath template 项目。

<b>design</b>

在设计模式中创建一个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工作完成。

<b>coding</b>

在"add" button 的属性中点"edit form code...".

Dynamic Dropdown List

visual studio 会自动生成event handler.

向dropdown list 中添加一个item,实际上是增加一个dpitemvalue节点。

Dynamic Dropdown List

xpathnavigator 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 在附件里。

继续阅读