惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
S
SegmentFault 最新的问题
V
Visual Studio Blog
J
Java Code Geeks
宝玉的分享
宝玉的分享
美团技术团队
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hackread – Cybersecurity News, Data Breaches, AI and More
有赞技术团队
有赞技术团队
量子位
Martin Fowler
Martin Fowler
MyScale Blog
MyScale Blog
Google DeepMind News
Google DeepMind News
Jina AI
Jina AI
博客园 - 叶小钗
月光博客
月光博客
P
Proofpoint News Feed
D
DataBreaches.Net
Blog — PlanetScale
Blog — PlanetScale
博客园_首页
腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
Stack Overflow Blog
Stack Overflow Blog

博客园 - hbiftsaa

Live Writer的Code Highlighter插件 在.NET中使用COMAdmin组件管理COM+组件 使用Web Service Interface. O/R Mapping再乱弹 blog切换到 http://www.robinzhong.com/ Infopath Cookies(1) 在Biztalk中使用Log功能:) 定制FxCop规则--检测Release版本中的TestCase 增强SVN的Commit权限控制 电影《幸存者游戏》的管理启示 回来了~..终于回来了... 先和大家告别一段时间了啊:) 转自DRL:向FlashFXP索取上传速度 在SP2中加速P2P类软件 爽啊~进入决赛了:) [建议] [号召] 征求博客园园标 [建议] 提问区的文章加入问题的解决方法/方案 hoho,,,要回家了:) Gmail New Features!
Infopath Cookies(2) - hbiftsaa - 博客园
hbiftsaa · 2005-05-27 · via 博客园 - hbiftsaa

昨天发了, 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的操作脚本函数定义如下:

搞定...