• ASP.NET1.1中动态树的实现


        因为ASP.NET1.1没有像ASP.NET2.0那样默认提供TreeView控件,所以ASP.NET1.1中实现动态树就不像ASP.NET2.0中那样简单了,但是也并没有复杂多少,只是多了点步骤而已。下面就让我们分三步来在ASP.NET1.1中建立一个组织机构的动态树显示。

       
    首先我们需要下载一个Microsoft提供的WebControls控件。(关于该控件的详细介绍,请看TreeView使用集锦)

        其次我们需要在数据库中建立一个组织机构的表来存储数据。创建数据表的代码如下:

    -- Create table
    create table ORGANIZATION 
    --组织机构
    (
     ORG_ID        NUMBER(
    20) not null--组织编号 
     ORG_NAME      VARCHAR2(
    40) not null,--组织名称 
     PARENT_ORG_ID NUMBER(
    20),--上级编号
     LAYER NUMBER(5) --组织层次
    );


    最后,就需要我们在ASP.NET页面后台类中动态加载ORGANIZATION表的数据,完成组织机构的显示。其核心代码如下:


    private void Page_Load(object sender, System.EventArgs e)
            {
                
    if(!Page.IsPostBack)
                {
                    
    try
                    { 
                        
    //得到数据表中的所有记录
                        selectString = "select * from organization order by layer";            
                        _ds 
    = _dbControl.GetDataNoPaging(selectString);    
                  
                        addNodes(
    this.TreeView1.Nodes, 0) ;//调用方法,绑定顶层结点
                    }
                    
    catch(Exception ex)
                    {
                         //如果有错 输出信息
                      
    Response.Write(ex.ToString());
                    }            

                }
            }

    private void addNodes(TreeNodeCollection collection, int parentNodeID )
            {    
                DataRow[] rows 
    = _ds.Tables[0].Select("parent_org_id=" + parentNodeID );//查找当前结点的所有子结点
                foreach(DataRow row in rows )
                {
                    
    //新建一个临时结点
                    TreeNode node = new TreeNode();
                    node.ID 
    = row["org_id"].ToString();
                    node.Text 
    = row["org_name"].ToString();
                    node.Expanded 
    = true;//默认为展开            

                    
    //迭代调用自身 加入当前结点的子结点 
                    addNodes(node.Nodes, int.Parse(row["org_id"].ToString()));
                
                    collection.Add(node);
    //加入到结点集合中                
                }            
            }
    //addNodes

  • 相关阅读:
    运算符和结合性
    几种排序算法 C++
    UNIX环境高级编程笔记
    几个C语言题与答案
    视频流中的DTS/PTS到底是什么 转载
    linux硬链接与软链接 转载
    HTTP POST上传文件(wininet实现)
    并查集(求最小生成树和集团问题)
    c++ vector
    C++STL priority_queue类
  • 原文地址:https://www.cnblogs.com/zhangronghua/p/895146.html
Copyright © 2020-2023  润新知