zoukankan      html  css  js  c++  java
  • InfoPath读取List到重复表

    标题设置好了 添加一个按钮 更改ID  点击编写代码

    然后添加引用 并更改下域的名字

    添加如下代码

    public void LoadBtn_Clicked(object sender, ClickedEventArgs e)
            {
                // 在此处编写代码。
                //创建集合用于存储数据
                List<UserInfo> users = new List<UserInfo>();
                users.Add(new UserInfo() { ID = 1, Name = "张三", Age = 18 });
                users.Add(new UserInfo() { ID = 2, Name = "李四", Age = 19 });
                //获取重复表
                XPathNodeIterator nodes = CreateNavigator().Select("/my:myFields/my:组1/my:组2", NamespaceManager);
                //每次点击按钮需要把之前重复表的内容全部删除
                          XPathNodeIterator val = CreateNavigator().Select("/my:myFields/my:组1/my:组2", NamespaceManager);    
             for (int i = 0; i < val.Count; i++)
    			{ if (val.Count == (i+1)) {
                        break;
                }
            CreateNavigator().SelectSingleNode("/my:myFields/my:组1/my:组2[" + 1 + "]", NamespaceManager).DeleteSelf();
                }
                //循环添加List集合里的数据
                foreach (UserInfo user in users)
                {
                    //获取重复表的最后一行
                    XPathNavigator node = CreateNavigator().SelectSingleNode("/my:myFields/my:组1/my:组2[" + nodes.Count + "]", NamespaceManager);
                    //复制最后一行给一个新的对象
                    XPathNavigator xdata = node.Clone();
    
                    //插入到最后一行的后面
                    node.InsertAfter(xdata);
                    //必须要先插入后设置值不然会有问题
                    xdata.SelectSingleNode("my:ID", NamespaceManager).SetValue(user.ID.ToString());
                    xdata.SelectSingleNode("my:姓名", NamespaceManager).SetValue(user.Name);
                    xdata.SelectSingleNode("my:年龄", NamespaceManager).SetValue(user.Age.ToString());
                }
                
      
            }
    
    InfoPath读取List到重复表
    

      

        class UserInfo {
            public int ID { get; set; }
            public string Name { get; set; }
            public int Age { get; set; }
    }
  • 相关阅读:
    函数嵌套 lisp表达式求值
    初涉时间间隔问题
    高精度算法-带小数大数相加
    12/10 C语言程序设计竞赛 后五题
    字符串头尾连接问题-木棒连接
    ZJGSU-ACM OJ 心得
    高精度算法-大数乘法
    趣味两题-(简单追及问题、两直线相交问题)
    struts2基于注解的action
    spring中常用的注解
  • 原文地址:https://www.cnblogs.com/RambleLife/p/8177802.html
Copyright © 2011-2022 走看看