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

在做项目的时候,有一个场景,当用户切换不同选项时(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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361166.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MDB!= JMS,反之亦然

基本 消息驱动Bean(又称为MDB)只是另一个EJB,如无状态,有状态或单例。 使用MessageDriven批注指定。 MDB用于异步消息处理 它们与无状态EJB 相似 ,因为它们都是由EJB容器池化的 但是,它们与无状态EJB不同…

4.1邮箱的全选,全不选,反选

事件&#xff1a;onclick 属性&#xff1a;checked 对于分清getElementsByTagName(元素名)里的元素名&#xff0c; 可以先提取其外面一层的元素&#xff0c;再在此基础上用getElementsByTagName(元素名) 用到for语句&#xff0c;if语句&#xff0c;length <!DOCTYPE ht…

调了 好几天的问题 treeview 的js 处理复选框之间的关系,选中子框父框自动选中,单独执行 没问题 放到框架页里 就有问题...

刚开始的js 这么写的 function OnTreeNodeChecked() {var ele event.srcElement;if (ele.type checkbox) {var childrenDivID ele.id.replace(CheckBox, Nodes);var div document.getElementById(childrenDivID);if (div ! null) {var checkBoxs div.getElementsByTagName…

1.2鼠标移入移出改变背景色和其他大小样式

功能&#xff1a;鼠标移入div,背景色变为绿色&#xff0c;宽变小&#xff0c;长变大&#xff0c;移出恢复原状 事件&#xff1a;onmouseover,onmouseout 属性&#xff1a; background,width,height <!DOCTYPE html><html><head><meta charset"utf…

JDK 9 –给圣诞老人的信?

众所周知&#xff0c;冬天&#xff08;尤其是圣诞节前的时间&#xff09;是做梦的合适时机&#xff0c;希望有一个梦想似乎可以触摸的时刻。 当孩子们和大人在纸上或在对圣诞老人的虚构或真实信件中写下自己的梦想的那一刻&#xff0c;希望他们的梦想将成为现实。 这很引人注目…

周三的工作 张孝祖

今天的任务是主面板master嘿嘿 上头有几个按钮&#xff0c;登录登出&#xff0c;个人信息&#xff0c;注册注销等&#xff0c;他们是根据用户是否等率决定的 具体代码如下 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System…

H5本地存储

在以前&#xff0c;我们想要存储一些数据&#xff0c;并且只是在前端使用&#xff0c;服务端并不会使用&#xff0c;我们只能存在cookie里&#xff0c;但是cookie会跟随请求头在客户端和服务端之间来回传递&#xff0c;而且cookie还有一些缺点&#xff0c;H5提供了webStorage的…

在哪里可以运行EJB?

EJB不仅为Java EE应用服务器而建。 他们还可以执行在的Java EE Web Profile的容器或简单的Java SE环境&#xff08;Java SE的啊- &#xff01;E&#xff01;ASY 的J ava 乙是指合同&#xff09;。 EJB Lite 仅支持完整的EJB规范提供的功能的子集所必需的-相同功能的轻量级版本…

sql查询结果字段名与字段值倒过来了

数据库为sybase, sql如下&#xff1a; 1 select substring(LRRJG,1,7) as SSQJ, 2 sum(case when RWDL_BH 01 then 1 else 0 end) AS A, 3 sum(case when RWDL_BH 01 and XBHSJG ! null then 1 else 0 end) AS B 4 from ZYH_DBRW_LRNSRRW 5 where LR_DBRW_ID ! null and DR …

Promise实战AJAX封装

一、利用Promise的知识&#xff0c;对最开始的ajax的例子进行一个简单的封装&#xff1a; var url xxx; // 封装一个get请求的方法 function request(url){return new Promise(function(resolve,reject){var XHR new XMLHttpRequest();XHR.open(GET,url,true);XHR.send();XHR…

重新设计Hamcrest

我在Hamcrest库上做了几篇文章 &#xff0c;我确实很喜欢使用它&#xff0c;但是我希望对其进行一些更改。 我了解他们做出的大多数设计决策&#xff0c;但我认为其中一些确实不值得。 介绍Litecrest 我对库所做的大多数更改都有助于减轻Hamcrest的负担&#xff0c;因为我觉得…

CSS 垂直居中

1、使用绝对定位垂直居中 绝对对位原理&#xff1a;元素在过度受限情况下&#xff0c;将margin设置为auto&#xff0c;浏览器会重算margin的值&#xff0c;过度受限指的是同时设置top/bottom与height或者left/right与width。 .absolute_center{/*display:none;*/position:absol…

Java EE拦截器

历史 我认为重要的是要看一下Java EE中的Interceptor的发展&#xff0c;因为它是从EJB特定的项目开始的&#xff0c;后来又演变成一个单独的规范&#xff0c;现在可供其他Java EE规范扩展&#xff0c;这一事实很简单。 版本1.0 拦截器最初是在EJB 3.0 &#xff08; Java EE 5的…

New Begin

已经研究生三年级了&#xff0c; 最近也找好了工作&#xff0c;应该要开始自己的程序人生了。 虽然说写程序也写了很一段时间了&#xff0c; 决定现在开始在cnblogs这个&#xff0c;记录下自己的学习轨迹。开始维护自己的blogs。转载于:https://www.cnblogs.com/binzeehale/ar…

[ExtJs6] 环境搭建及创建项目

1. 环境搭建 sencha cmd 和 extjs6 sdk.sencha cmd: https://www.sencha.com/products/extjs/cmd-download/extjs6: https://www.sencha.com/sencha cmd 安装过程将其加入系统的环境变量path中。export PATH${PATH}:/Users/shuanggai/bin/Sencha/Cmd/6.2.2.36把改语句添加到 ~/…

通过Spring Integration和RabbitMQ获得高可用性的AMQP支持的消息通道

Spring Integration消息通道默认情况下将消息存储在内存中。 这是因为内存速度快&#xff0c;易于实现&#xff0c;并且不会增加网络成本。 但是&#xff0c;在某些情况下&#xff0c;这可能会引起问题&#xff0c;因为如果应用程序崩溃或服务器意外关闭&#xff0c;所有消息都…

有机会多熟悉下开源框架

Struts2&#xff0c;Spring&#xff0c;Hibernate等开源框架的使用转载于:https://www.cnblogs.com/yqskj/archive/2012/11/05/2756085.html

vue之node.js的简单介绍

一、什么是node.js&#xff1f; 它是可以运行JavaScript的服务平台&#xff0c;可以吧它当做一门后端程序&#xff0c;只是它的开发语言是JavaScript 二、安装 1、node.js的特性&#xff1a; - 非阻塞IO模型- 时间驱动 2、运用的场景&#xff1a; - 高并发低业务- 实时场景- 聊…

Java 8 StringJoiner

在Java 8发行版中&#xff0c;最受关注的是Lamda&#xff0c;新的Date API和Nashorn Javascript引擎。 在这些阴影下&#xff0c;有较小但有趣的变化。 其中之一是StringJoiner的引入。 StringJoiner是用于分隔字符或字符串列表的实用程序。 您可能会认出以下代码&#xff1a; …

设置TextView为下划线的样式

1 tvUserTel.setText(Html.fromHtml("<u>"usertel"</u>")); 2 tvUserTel.setTextColor(Color.BLUE);//设置为蓝色 转载于:https://www.cnblogs.com/Tristan2012/archive/2012/11/06/2757239.html