zoukankan      html  css  js  c++  java
  • Asp.net 1.1 Treeview 控件的绑定

    Asp.net 1.1 Treeview 控件的一个简单的数据绑定,Asp.net1.1自身没有Treeview控件,可以从网上download安装即可,树形控件绑定的一个重要的思想就是递归的思想,所以在绑定的时候就要使用递归的方法,考录到性能问题,通常是将数据一次性load到一个容器中如:缓存,然后根据条件在缓存中将数据绑定到树形控件上,下面是个简单的例子

    后台代码:

      1using System;
      2using System.Collections;
      3using System.ComponentModel;
      4using System.Data;
      5using System.Drawing;
      6using System.Web;
      7using System.Web.SessionState;
      8using System.Web.UI;
      9using System.Web.UI.WebControls;
     10using System.Web.UI.HtmlControls;
     11using System.Data.SqlClient;
     12using Microsoft.Web.UI.WebControls;
     13namespace TreeTest
     14{
     15    /// <summary>
     16    /// WebForm1 的摘要说明。
     17    /// </summary>

     18    public class WebForm1 : System.Web.UI.Page
     19    {
     20        protected Microsoft.Web.UI.WebControls.TreeView Tree2;
     21    
     22        private void Page_Load(object sender, System.EventArgs e)
     23        {
     24            if(!IsPostBack)
     25            {
     26                InitTree();
     27            }

     28        }

     29
     30        Web 窗体设计器生成的代码
     50
     51        
     52        private void InitTree()
     53        {
     54            try
     55            {            
     56                TreeNode node=new TreeNode();
     57                node.Text="根节点";
     58                node.ID="-1";    
     59                string sqlString="Select * From Tree Where ParentID=0";
     60                Tree2.Nodes.Add(node);    
     61                SqlDataReader rd=GetDataReader(sqlString);
     62                while(rd.Read())
     63                {    
     64                    string pId=rd["ID"].ToString();
     65                    TreeNode node1=new TreeNode();
     66                    node1.Text=rd.GetString(1);
     67                    node1.ID=rd["ID"].ToString();                            
     68                    node.Nodes.Add(node1);    
     69                    MakeTree(node1,pId);                    
     70                }
                
     71            }

     72            catch(Exception err){Console.WriteLine(err.Message);}
     73            finally{}
     74        }

     75
     76        private void MakeTree(TreeNode fnode,string pId)
     77        {
     78            try
     79            {
     80                TreeNode node;        
     81                string sqlString="Select ID,Name,ParentID From Tree Where ParentID="+pId;
     82                SqlDataReader rd=GetDataReader(sqlString);
     83                while(rd.Read())
     84                {
     85                    string PID=rd["ID"].ToString();            
     86                    node=new TreeNode();
     87                    node.Text=rd["Name"].ToString();
     88                    node.ID=rd["ID"].ToString();                            
     89                    fnode.Nodes.Add(node);    
     90                    MakeTree(node,PID);        //递归                    
     91                }

     92                rd.Close();                        
     93            }

     94            catch(Exception err)
     95            {
     96                Console.WriteLine(err.Message);
     97            }

     98            finally{}            
     99        }

    100
    101        private SqlDataReader GetDataReader(string sqlString)
    102        {
    103            try
    104            {            
    105                string conString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
    106                SqlConnection conn=new SqlConnection(conString);
    107                SqlCommand cmd=new SqlCommand(sqlString);                        
    108                conn.Open();
    109                cmd.Connection=conn;
    110                return    cmd.ExecuteReader();                
    111            }

    112            catch (System.Exception e)
    113            {
    114                return null;
    115            }
        
    116            finally
    117            {    }
    118        }

    119
    120    }

    121}

    122
    前台文件:
     1<%@ Register TagPrefix="iewc1" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls" %>
     2<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="TreeTest.WebForm1" %>
     3<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
     4<HTML>
     5    <HEAD>
     6        <title>WebForm1</title>
     7        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
     8        <meta name="CODE_LANGUAGE" Content="C#">
     9        <meta name="vs_defaultClientScript" content="JavaScript">
    10        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    11    </HEAD>
    12    <body MS_POSITIONING="GridLayout">
    13        <form id="Form1" method="post" runat="server">
    14            <FONT face="宋体">
    15                <iewc1:TreeView id="Tree2" style="Z-INDEX: 101; LEFT: 104px; POSITION: absolute; TOP: 160px" runat="server"></iewc1:TreeView></FONT>
    16        </form>
    17    </body>
    18</HTML>
    数据结构:
     1if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Tree]'and OBJECTPROPERTY(id, N'IsUserTable'= 1)
     2drop table [dbo].[Tree]
     3GO
     4
     5CREATE TABLE [dbo].[Tree] (
     6    [ID] [int] IDENTITY (11NOT NULL ,
     7    [Name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
     8    [ParentID] [int] NOT NULL 
     9ON [PRIMARY]
    10GO
    11




    作者:蓝之风
    出处:http://www.cnblogs.com/vaiyanzi/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    linux 系统tar文件压缩打包命令
    linux如何查看所有的用户和组信息?
    go语言之行--golang操作redis、mysql大全
    Redis集群的5种使用方式,各自优缺点分析
    docker-compose搭建redis哨兵集群
    windows版 navicat_15.0.18 安装
    redis aof数据持久化
    redis rdb数据持久化
    03.redis 事务
    02 redis 三种特殊的数据类型
  • 原文地址:https://www.cnblogs.com/vaiyanzi/p/1095103.html
Copyright © 2011-2022 走看看