项目后台使用的是基于InfoPath的后台管理系统。后台主要是生成CMS系统需要的XML文件,但是有的内容和其他的内容有关联。为了减少编辑人员的操作难度,所有相关的内容,都需要自定义开发InfoPath,支持动态加载关联的数据内容。InfoPath界面如下:

Insert Type和Content Type是从Config DataObject里面动态读取,content type右边的字段是根据content type左边的字段来过滤显示内容了。这个字段是通过Detail DataObject来读取的。conent type右边的字段是一个drop list box,也就是dropdown list下拉框。通过选择不同的字段,填充下面的title,abstract,以及最下面的Image Url和Image Tooltip。这个四个字段的数据是动态从RelatedContent DataObject中读取的。因为整个的大的section可以重复,所以最开始实现起来,问题还是蛮多的。主要使用到了current()函数,后续博客里面将介绍,如何在repeating section中是使用current()函数,达到指定的section绑定不同的数据。

通过使用current()函数,title,abstact,image url和image tooltip都可以正常的填充数据,但是保存好infopath之后,用户重新打开,发现前面提到的四个字段都为空,因为我是对这个四个字段动态绑定RelatedContent数据源,并且是根据id(content type右边的那个字段)来筛选显示数据的。但是不知道为什么,infopath保存不了上述四个字段值。我最后找到一个比较简陋的办法时,将那四个字段复制一份,名称都以Populate开始,就是这四个字段使用current()函数去动态加载数据,而正常的title,abstract,image url和image tooltip不去动态加载数据,和普通的infopath字段一样。然后需要用户最后点击最下面的“Binding Data”按钮,然后将Populate的值全部复制到普通的四个字段中。这样得以保存infopath中的数据。

“Binding Data”按钮事件的内部代码如下:

e.Source.selectSingleNode("title").text=e.Source.selectSingleNode("populatetitle").text; e.Source.selectSingleNode("abstract").text=e.Source.selectSingleNode("populateabstract").text; e.Source.selectSingleNode("image/@url").text=e.Source.selectSingleNode("image/@populateurl").text; e.Source.selectSingleNode("image/@tooltip").text=e.Source.selectSingleNode("image/@populatetooltip").text;

本身Main Source的xml结构如下:

<root> <contentItems configXML=""> <content inserttype="" contenttype="" id=""> <title></title> <abstract></abstract> <link url="" target=""></link> <image url="" tooltip=""></image> </content> <content inserttype="" contenttype="" id=""> <title></title> <abstract></abstract> <link url="" target=""></link> <image url="" tooltip=""></image> </content> <content inserttype="" contenttype="" id=""> <title></title> <abstract></abstract> <link url="" target=""></link> <image url="" tooltip=""></image> </content> </contentItems> </root>

转载于:https://www.cnblogs.com/liminjun88/archive/2013/03/20/2972268.html

InfoPath中repeationg section动态填充数据相关推荐

  1. java 解析word模板为xml, 动态填充数据到xml,最后输出word文档

    java 解析word模板为xml, 动态填充数据到xml,最后输出word文档 在项目中, 一开始是使用java Apache poi 根据word模板生成word报表, 后面发现框架有个低版本的p ...

  2. Java 将xml模板动态填充数据转换为word文档

    需要用到的jar包: commons-codec-1.10.jar freemarker-2.3.21.jar jacob-1.6.jar 实现思路: 1.先将word文档另存为 : Word 200 ...

  3. c语言向表格内存入数据,怎么实现横向到存入多个单元格,在列数固定的报表中逐格横向填充数据并折行...

    在很多需要打印的报表中,受限于纸张的大小,往往会限制行数或者固定列数.我们在<单据类报表的制作>一文中,曾经介绍了限制了行数的情况如何实现,现在,我们再来看一下,在固定了列数的情况下,如果 ...

  4. C# 配置文件中添加自定义section标签获取数据

    前言:在添加获取配置文件自定义section 特性的数据时,遇到了问题并把它记录下来: 1. 类型"xxxxx.xxxx.sectionName"不从"System.Co ...

  5. select2动态填充数据(豪华VIP自定义option)

    1.代码 <!DOCTYPE html> <html><head><meta charset="UTF-8"><title&g ...

  6. 填充数据合并单元格并导出excel代码实现

    以下代码是动态填充数据,这些数据是从数据库取得的批量的,并合并单元格,最终导出excel.但是有一点需要注意,一定是先填充数据在合并单元格,而且每个单元格的样式都是提前设置好的 . 举个例子:合并单元 ...

  7. POI操作word填充数据,合并多个word为一个,遇到一些问题的解决

    POI操作word填充数据,合并多个word为一个,遇到一些问题的解决 最近搞一个向word模板中替换占位符 填充数据,然后将多个word合并在一起的方法.网上一搜有很多资料,现在在这儿对过程中遇到的 ...

  8. vue09动态树+数据表格+分页模糊查

    14天阅读挑战赛 努力是为了不平庸~ 目录 1. 准备工作 2. 动态树 2.1 在配置请求路径 2.2 使用动态数据构建导航菜单 2.2.1 通过接口获取数据 2.2.3 通过后台获取的数据构建菜单 ...

  9. php 图表教程,TeeChart for PHP教程(一):构建图表并填充数据系列

    TeeChart for PHP包含100%的PHP源代码.它支持PHP5及更高的版本.它可作为一个调色板组件整合到针对PHP的Delphi编程环境中,从而让其他人在运行时以创建组件的方式来引用.第一 ...

最新文章

  1. 区块链相关论文研读2 - vChain,关于可验证的查询
  2. C++中sprintf()函数的使用详解
  3. 关于 Notepad++ 崩溃之后正在编辑文件内容被清空的致命问题的补救措施
  4. Nodejs 操作 MongoDb 数据库
  5. python自动补全_Windows 下python的tab自动补全
  6. setupUi()引起的麻烦
  7. 这20个常规Python语法你都搞明白了吗?
  8. 沪牌学院-沪拍拍课堂2: 出价策略
  9. yxy小蒟蒻的201119总结
  10. 2022年高考送祝福,金秋9月,CSDN等你哦!
  11. OpenGL + Win32 SDK 开发框架的搭建(C语言版)
  12. NIPS2019:旷视提出DetNAS:首个搜索物体检测Backbone的方法
  13. Amdahl定律和Gustafson定律
  14. Dockerfile 命令详解
  15. cocos2d 3.3 lua 代码加密 luac
  16. 每个人心中都有一艘小白船
  17. linux--Flex and Bison
  18. MPEGl和MPEG2数字视频编码标准
  19. Android屏幕适配方案
  20. Project build error: Non-parseable POM D:\code\pom.xml: expected start tag name and not

热门文章

  1. sublime3中文乱码解决包ConvertToUTF8.zip
  2. mysql update case when和where之间的注意事项
  3. OSPF 传播默认路由
  4. CS 客户端不引用AE
  5. oracle数据库建表、修改字段名称类型、增加字段、ID自动增长写法
  6. 存储分析:RAID技术走向何方?
  7. Q137:PBRT-V3,各种采样(Sampling)之间的逻辑
  8. Q78:规则网格(Regular Grids)——Ray Tracing中的一种加速技术
  9. 大数据分析平台的功能有哪些
  10. 大数据分析要避免哪些错误