在做项目的时候,有一个场景,当用户切换不同选项时(radio button),repeating section会随着切换而变换两种状态1:删除所有item. 2.新增而且只新增一个item.

对于删除比较容易,但对于从没有任何一个item状态下,新增一个item,来讲,在网上找了很久,也没有找到合适的解决办法。经过几次试验,终于有了一个比较理想的解决方案。即用临时变量存放section item的xml。然后当状态切换时,用代码AppendChild(xml)来动态新增一个item.

infopath form的dataSource如下结构:

-myFields

|-group1

|-group2

|-field1

|-field2

删除:

XPathNavigator domNav = MainDataSource.CreateNavigator();

XPathNodeIterator it = domNav.Select("/my:myFields/my:group1/my:group2", NamespaceManager);
            while (it.Count > 0)
            {
                it.MoveNext();
                it.Current.DeleteSelf();
                it = domNav.Select("/my:myFields/my:group1/my:group2", NamespaceManager);
            }

新增 :

1),用临时变量存放section item的xml. 注意:如果是web based的,要用session来存放这个变量

private object _NodeXml
        {
            get
            {
                return FormState["_nodeXml"];
            }
            set
            {
                FormState["_nodeXml"] = value;
            }
        }

public void FormsEvents_Loading(object sender,LoadingEventArgs e)

{

XPathNavigator pare = domNav.SelectSingleNode("/my:myFields/my:group1/my:group2", NamespaceManager);
            if (pare != null)
            {
                _NodeXml= pare.OuterXml;
            }

}

2)在另外的事件下面:

XPathNavigator domNav = MainDataSource.CreateNavigator();

XPathNavigator pare = domNav.SelectSingleNode("/my:myFields/my:group1", NamespaceManager);
            pare.AppendChild(_NodeXml);

转载于:https://www.cnblogs.com/sdikerdong/archive/2012/10/31/2747883.html

如何用代码对repeating section控件新增Item(InfoPath)相关推荐

  1. html设置控件位置大小,下面那个代码段设置myButton控件显示在HTML页左上角100px的位置 - 问答库...

    问题: [多选] 下面那个代码段设置myButton控件显示在HTML页左上角100px的位置?() A . B . C . D . 调度例行会议形式有什么() 生产平衡会. 事故分析会. 调度专业会 ...

  2. 【小技巧积累】设置ListView控件的Item不在Tab键导航序列中

    在默认情况下,ListView控件的Item在Tab键导航序列中,就算我们将ListView控件的IsTabStop属性设置为False.而有些情况下,我们需要按Tab键时能跳过ListView控件. ...

  3. C# ListBox控件中item换行 C#重绘ListBox项

    C# ListBox控件中item换行 C#重绘ListBox项 WindowsForm项目开发中,Listbox控件item数据项,只能一条数据显示在一行,有的时候内容很长,体验就非常之差.简直要歇 ...

  4. 【079】用代码来创建 Android 控件

    一般来说我们在创建控件的时候都是在 XML 文件中完成的, 实施起来还是蛮方便的, 而且修改起来也可以很快的看见效果, 但是有一个很大的劣势就是没办法动态的创建控件, 举个例子, 例如我从数据库中取出 ...

  5. 深入学习SAP UI5框架代码系列之七:控件数据绑定的三种模式 - One Way, Two Way和OneTime实现原理比较

    这是Jerry 2021年的第 8 篇文章,也是汪子熙公众号总共第 279 篇原创文章. 系列目录 (0) SAP UI5应用开发人员了解UI5框架代码的意义 (1) SAP UI5 module懒加 ...

  6. [转贴]原创控件代码共享--日期选择控件

    思路:实现日期年月日的选择 1.可以设定年的起止年份 2.排除不正确日期选择的可能 3.使用javascript实现控制 4.使用Text属性方便获取设置日期值 =================== ...

  7. ios 控件徽章_一行代码给你的控件加上徽章(Badge)

    不废话,先上图 BadgeView 其实在开发众多APP中,可能我们都需要用到这种BadgeView控件,以前可能是在需要的地方加个图标上去,这样每次有这样的需求的时候就需要在布局里写个控件上去,很麻 ...

  8. 在Java代码中设置布局/控件

    一.引言 在实际开发中,往往需要更灵活地控制布局位置,譬如说控件的左边距要根据其左边TextView的文字长度来变化leftMargin,此时就应该在代码中实现动态变化 持续更新- 二.正文 设置le ...

  9. C#窗口调用百度云实现人脸识别。(注意代码中添加的控件以及部分传值给函数,亲测百分百可用。)

    调用的dll库文件 代码模块 首先是连接开启电脑摄像头,拍照后保存照片到本地. 然后是调用百度云: 1.获取百度云access_token与百度云连接: 2.建立控制太应用:人脸识别: 3.人脸库的人 ...

最新文章

  1. 能详细地讲讲stm32该怎么学吗?
  2. python语言自学-自学Python要学多久可以学会?老男孩Python培训
  3. SQL Server 分页+json分享
  4. 从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板
  5. php历史上的今天源码,代码获取历史上的今天发生的事_基础知识
  6. 建堆解决TopK问题
  7. Linux学习课程笔记(1)
  8. 基于分数阶的图像边缘细节检测
  9. ASIHTTPRequest框架进行文件下载
  10. 放鞭炮时,应该戴护目镜
  11. c语言的单片机delay延时函数详解
  12. SQL编程:外键约束
  13. 文件名批量修改工具V1.0 绿色版
  14. 128G的U盘格式化后只有300M,如何恢复成128G
  15. Amesim学习——弹球仿真
  16. 计网笔记-计网总结-计网复习提纲-第一章.概述
  17. html 样式大全,2017最新css样式大全
  18. vs警告 当前源代码跟内置的版本不一致解决办法
  19. Pycharm的python interpreter选择
  20. APP马甲包优化技巧制作流程(二)

热门文章

  1. 二阶自回归过程matlab,时间序列分析:二阶自回归过程
  2. Python3求最后一个单词长度
  3. word一键生成ppt 分页_如何一键把Word转换为PPT?
  4. matplotlib 折线图_漂亮图表也可信手拈来,一文学会用Python绘制堆积折线图
  5. php strpos无效,簡單的PHP strpos功能不起作用,為什么?
  6. 网管交换机和非网管交换机有什么区别?
  7. 工业级光纤收发器一般适合哪些应用环境?
  8. [渝粤教育] 中国地质大学(武汉) 文化遗产与自然遗产 参考 资料
  9. 【渝粤题库】广东开放大学 商务交际听说 形成性考核
  10. 【渝粤题库】国家开放大学2021春2019统计学原理题目