






















昨天发了, Infopath Cookies(1) .今天再发:)
这个文章主要写的是关于Dropdownlist的数据绑定...
1,最简单的方法,从控件上拖一个DropDownList到界面上面,在其属性选择"手动输入列表框项",然后自己把其中的数据一个个的填写到下面的表格中...
上面的方法应该是用的最多的了吧..方便,想写什么就写什么.爽..
不过缺点就是静态的,不能动态进行修改.使用上有限制:(
2.同上,在属性中选择"在数据库,Web服务或文件中进行查找".通过这个方式,我们可以直接把WebService的结果集绑定到DropDownList里面..只要设置好其数据源和相应的项就OK了...
3.Infopath中使用其开发界面,基本上就上述两种方式了.但是如果绑定的数据不是来自于WS,或是数据就是存在于此Infopath表单中的呢?这个时候怎么去动态绑定数据呢?
我们先来生成一个直接绑定WebService的DropDownList表单.
WebService定义的代码(示例):
在Infopath中添加一个辅助数据源(TransD).把数据绑定到DropDownList中去.Key为DropDownList的显示名称,Values为值...
这时,我们提取表单文件.提取后的表单文件中,我们可以看到若干个*.xsl文件.在上个文章中,我提到过,Infopath就是XML+XSLT+JScript.使用xml进行数据的存储, xslt进行数据的显示,JScript进行数据的交换.
于是....注意到我们的视图只有一个,默认的名字是View1.于是,我们用打开View1.xsl文件...
找到这样的一段:
熟悉XML和XSLT语法的人应该一眼就可以看出来这个代码的作用了.
通过使用<xsl:for-each>把节点 XDocument.GetDOM('TransD').selectNodes("//dfs:myFields/dfs:dataFields/tns:TransDResponse/tns:TransDResult/tns:Data") 中的所有子节点显示出来.
其中的tns:Key是显示的文本,tns:Values为其中的值.
找到这里,就知道方法显示Infopath表单中的数据的方法了.修改<xsl:for-each>中的数据源为Infopath表单中相应的节点...
定义Infopath的数据源如下:
其中<my:Lists>在Infopath中定义为重复节...
然后修改上面的XSLT代码如下:
OK了,到这里.代码基本上就都完成了.现在只要把相应的数据填充进去就可以了..
下面给一个测试的JScript代码,在此表单中,加入一个Button.把此Button的操作脚本函数定义如下:
搞定...
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。