zoukankan      html  css  js  c++  java
  • 如何用代码对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);

  • 相关阅读:
    PAT Advanced 1138 Postorder Traversal (25) [树的遍历,前序中序转后序]
    PAT Advanced 1127 ZigZagging on a Tree (30) [中序后序建树,层序遍历]
    PAT Advanced 1020 Tree Traversals (25) [⼆叉树的遍历,后序中序转层序]
    PAT Basic 1075 链表元素分类(25) [链表]
    PAT A1133 Splitting A Linked List (25) [链表]
    PAT Advanced 1097 Deduplication on a Linked List (25) [链表]
    PAT Basic 反转链表 (25) [链表]
    PAT Advanced 1074 Reversing Linked List (25) [链表]
    PAT Advanced 1052 Linked List Sorting (25) [链表]
    PAT Advanced 1032 Sharing(25) [链表]
  • 原文地址:https://www.cnblogs.com/sdikerdong/p/2747883.html
Copyright © 2011-2022 走看看