父页

WebPage2.aspx

< body MS_POSITIONING = " GridLayout " >
         < form id = " Form1 "  method = " post "  runat = " server " >
             < FONT face = " 宋体 " >< INPUT id = " TB_CFYJ "   type = " text "     name = " TB_CFYJ " >< INPUT  type = " button "  value = " Button "  onclick = " window.open('WebForm1.aspx', '', ''); " ></ FONT >
         </ form >
     </ body >

WebPage1.aspx

<% @ Page language = " c# "  Codebehind = " WebForm1.aspx.cs "  AutoEventWireup = " false "  Inherits = " test.WebForm1 "   %>
<% @ Register TagPrefix = " iewc "  Namespace = " Microsoft.Web.UI.WebControls "  Assembly = " Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35 "   %>
<! DOCTYPE HTML PUBLIC  " -//W3C//DTD HTML 4.0 Transitional//EN "   >
< HTML >
     < HEAD >
         < title > WebForm1 </ title >
         < meta content = " JavaScript "  name = " vs_defaultClientScript " >
         < meta content = " http://schemas.microsoft.com/intellisense/ie5 "  name = " vs_targetSchema " >
         < script >
        function GetAttribute() // 没用
         { alert(TreeView1.getTreeNode(TreeView1.selectedNodeIndex).getAttribute("Text")); }
           
        function gg() // 客户端遍历(有BUG。碰上折起来的结点就会出错)
         {
            var AllRootNode=new Array();
            AllRootNode=TreeView1.getChildren();
            AlertNode(AllRootNode);
            function AlertNode(NodeArray)
            {
                if(parseInt(NodeArray.length)==0)
                    return;
                else
                {
                    for(i=0;i<NodeArray.length;i++)
                    {
                        var cNode;
                        cNode=NodeArray[i];
                        alert(cNode.getAttribute("Text"));
                        if(parseInt(cNode.getChildren().length)!=0)
                            AlertNode(cNode.getChildren());
                    }
                }
            }
        }         
        function addCFYJ() // For Client回传值
         {
            var mys = opener.document.all("TB_CFYJ");
            mys.value=mys.value+TreeView1.getTreeNode(TreeView1.selectedNodeIndex).getAttribute("Text")
        }
        
         </ script >
     </ HEAD >
     < body MS_POSITIONING = " GridLayout " >
         < FONT face = " 宋体 " >
             < form id = " Form1 "  method = " post "  runat = " server " >
                 < INPUT type = " button "  onclick = " addCFYJ() "  value = " client方式 " > // 这里是直接用客户端方式把数据传回去
                 < iewc:treeview id = " TreeView1 "  runat = " server " ></ iewc:treeview >
                 < asp:Button id = " Button1 "  runat = " server "  Text = " 服务器重写js " ></ asp:Button ></ form >
         </ FONT >
     </ body >
</ HTML >

WebPage2.cs

using  System;
using  System.Collections;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Web;
using  System.Web.SessionState;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.HtmlControls;

using  Microsoft.Web.UI.WebControls;
using  System.Data.OracleClient;

namespace  test
{
    /**//// <summary>
    /// WebForm1 的摘要说明。
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
        protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
        protected System.Web.UI.HtmlControls.HtmlForm Form1;
        protected System.Web.UI.WebControls.Button Button1;
    
        DataSet ds;
        private void Page_Load(object sender, System.EventArgs e)
        {
            OracleConnection conn=new OracleConnection("user id=hzzfj;password=hzzfj;data source=hzzfj");
            try
            {                    
                OracleDataAdapter ad=new OracleDataAdapter("select * from  dept",conn);
                ds=new DataSet();
                ad.Fill(ds,"tree");
                InitTree(TreeView1.Nodes,"0");
            }
            catch(Exception E)
            {
            }
            finally
            {
                conn.Close();
            }
        }

        //建树的基本思路是:从根节点开始递归调用显示子树 
        private void InitTree(TreeNodeCollection Nds,string parentId) 
        
            DataView dv=new DataView();
            TreeNode tmpNd;
            string intId;
            dv.Table=ds.Tables["tree"];
            dv.RowFilter="PARENTID="+parentId + "" ;
            foreach(DataRowView drv in dv) 
            
                tmpNd=new TreeNode();
                tmpNd.ID=drv["DEPT_ID"].ToString();
                tmpNd.Text=drv["DEPT_NAME"].ToString();
                tmpNd.CheckBox=true;                
                //tmpNd.ImageUrl="../images/"+drv["Icon"].ToString();
                //tmpNd.NavigateUrl="../"+drv["Address"].ToString();
                Nds.Add(tmpNd);
                intId=drv["ParentId"].ToString();
                InitTree(tmpNd.Nodes,tmpNd.ID);
            }
        }
        
        string res="";
        private void Button1_Click(object sender, System.EventArgs e)
        {
            //Response.Write("<script> alert('"+GetAllNodeText(TreeView1.Nodes)+"')</script>");
            Response.Write("<script> var mys = opener.document.all('TB_CFYJ');mys.value='"+GetAllNodeText(TreeView1.Nodes)+"';</script>");
        }

        string GetAllNodeText(TreeNodeCollection tnc)
        {
            foreach(TreeNode node in tnc)
            {
                if(node.Nodes.Count!=0)
                    GetAllNodeText(node.Nodes);
                if (node.Checked)
                {
                    res+=node.Text + "|";
                }
                
            }
            return res;
        }
    }
}

转载于:https://www.cnblogs.com/tongzhenhua/archive/2005/06/02/166802.html

树形结构与父子页数据传递相关推荐

  1. Vue表单类的父子组件数据传递示例_vue.js_脚本之家

    使用Vue.js进行项目开发,那必然会使用基于组件的开发方式,这种方式的确给开发和维护带来的一定的便利性,但如果涉及到组件之间的数据与状态传递交互,就是一件麻烦事了,特别是面对有一大堆表单的页面. 在 ...

  2. CSS实现树形结构 + js加载数据

    看到一款树形结构,比较喜欢它的样式,就参照它的外观自己做了一个,练习一下CSS. 做出来的效果如下: 拉莫小学 一年级 一班 二班 二年级 三年级 一班 二班 三班 树的dom结构: <div ...

  3. react中父子组件数据传递,子组件之间的数据传递

    首先有三个js文件,index.js(父组件) baseForm.js(子组件) etable.js(子组件) 在index.js中定义一个arr数组,传给BaseForm组件 import Reac ...

  4. 跨页数据传递的两种方式

    选择具有PostBackUrl属性的三个控件Button.LinkButton.ImageButton.PostBackUrl属性的值就是投递的页面URL. 要在接收页面按对象的方式接收投递页面的表单 ...

  5. html5父子页面数据传递,使用iframe标签嵌套页面时 如何进行父子页面通讯/传值...

    父页面使用iframe标签引入子页面 (使用本地文件) 父页面 function myFunction(e) { console.log("我是父页面的方法") } 引入本地路径的 ...

  6. vue父子之间数据传递

    父组件: 1,引入子组件 2,ref 3,需要更新数据操作的地方 子组件: 1,定义同名事件,拿到数据执行相关操作

  7. Angular2父子组件数据传递之@ViewChild获取子组件详解

    @ViewChild的作用是声明对子组件元素的实例引用,意思是通过注入的方式将子组件注入到@ViewChild容器中,你可以想象成依赖注入的方式注入,只不过@ViewChild不能在构造器constr ...

  8. 数据库学习,树形结构的数据库表Schema设计方案

    2019独角兽企业重金招聘Python工程师标准>>> 程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门.栏目结构.商品分类等等,通常而言,这些树状结构需 ...

  9. mysql关系型数据库生成树形结构,Layui页面渲染树型结构图(详细)

    文章目录 一.学使用DTree 上代码(详细说明注释见) 引入结构 说明 dataFormat:"list" 二.使用MySQL查询结果 说明 三.效果展示 总结 # 前言 项目使 ...

最新文章

  1. 第163天:js面向对象-对象创建方式总结
  2. SAP中执行没有权限的事务
  3. 14.PTD与的基址
  4. springboot-嵌入式Servlet容器(Tomcat)源码分析以及容器切换
  5. ElasticSearch入门 第一篇:Windows下安装ElasticSearch
  6. SAP HANA Hint简介
  7. JPA实体锁定模式的差异
  8. 工作67:三级级联问题
  9. 分布式数据库在金融应用场景中的探索与实践
  10. M斐波那契数列(HDU-4549)
  11. mybatis中经典的9种设计模式
  12. html页面forEach用法,!foreach循环用在HTML中,请高手协助
  13. 游戏开发之C++指针的妙用(C++)
  14. .net weka ikvm java
  15. 刷题记录 CF每日一题打卡 2020.5月?-六月16
  16. 量子计算机需要的基础,量子计算入门
  17. 不是吧!你还不懂DHT协议?
  18. CAD创建以及自动加载脚本文件*scr
  19. 不要去深圳小梅沙海洋世界
  20. QtAV的编译与使用(MSVC2015+Qt5.9.8)

热门文章

  1. 小红书:在对立中求生存
  2. 搜索引擎究竟是如何区分原创和伪原创的呢?
  3. 论 Web 2.0 时代PHP的地位
  4. 动量轮动与光大RSRS指标在backtrader的实现
  5. 一个传统的分销+仓储+物流的功能,软件能做些什么让它最快看到成果
  6. linux 卸载 gitlab,完全卸载删除gitlab
  7. 渗透测试另类利用社会工程学
  8. Mac下PDF转EPS的方法
  9. 抖音、快手认证这些你了解吗
  10. 戳进来!领取你的专属「星巴克」微信状态~