最近做了一个图书馆管理系统,其中要实现中图法分类号查询,因为初学asp ,感觉还有点难度,

第一步:数据库文件

第二步 向界面中拖进TreeView控件

第三步添加事件

下面是cs文件代码

 //TreeView绑定数据库
public void BindDataBase(string sql){
string str = System.Configuration.ConfigurationManager.
ConnectionStrings["conn"].ToString();
SqlConnection connection = new SqlConnection(str);
try
{
connection.Open();
}
catch (Exception ex)
{
Response.Write(ex.Message);
} SqlCommand sqlCmd = new SqlCommand(sql, connection); SqlDataAdapter custDA = new SqlDataAdapter();
custDA.SelectCommand = sqlCmd;
DataSet ds = new DataSet();
custDA.Fill(ds, "BookType"); TreeNode root = new TreeNode("中图法分类");//新建根节点
this.Kind_Tree.Nodes.Add(root);
for (int i = ; i < ds.Tables["BookType"].Rows.Count; i++)
{
string parent=ds.Tables["BookType"].Rows[i][].ToString();//获取数据库中标记节点
if(parent=="root"){//判断是否是根节点下的子节点
TreeNode tree2 = new TreeNode(ds.Tables["BookType"].Rows[i][].ToString()
+ ds.Tables["BookType"].Rows[i][].ToString());//创建一级子节点
root.ChildNodes.Add(tree2);
/*for (int j = 0; j < ds.Tables["BookType"].Rows.Count; j++)
{
string myparent = ds.Tables["BookType"].Rows[i][2].ToString();
if (myparent == tree2.Text.ToString())
{
TreeNode tree3 = new TreeNode(ds.Tables["BookType"].Rows[i][0].ToString() + ds.Tables["BookType"].Rows[i][1].ToString());
tree2.ChildNodes.Add(tree3);
}
}*/
}
}
for (int j = ; j < root.ChildNodes.Count; j++)
{
TreeNode rootChild = root.ChildNodes[j];//获取根节点下的子节点
for (int k = ; k < ds.Tables["BookType"].Rows.Count; k++)
{
string parent = ds.Tables["BookType"].Rows[k][].ToString();//获取数据库中标记节点 if (parent == rootChild.Text.ToString().Substring(,))//判断是否是二级子节点
{
TreeNode tree3 = new TreeNode(ds.Tables["BookType"].Rows[k][].ToString()
+"-"+ ds.Tables["BookType"].Rows[k][].ToString());//新建二级子节点
rootChild.ChildNodes.Add(tree3);
}
}
} //TreeNode rootChil = root.ChildNodes[0];
// Response.Write(rootChil.Text.ToString().Substring(0,1));
connection.Close();
} //TreeView的响应事件 protected void Kind_Tree_SelectedNodeChanged(object sender, EventArgs e)
{
string s = Kind_Tree.SelectedNode.ValuePath.ToString();
char[] spitChar = new char[] { '/' };
string[] nodeValues = s.Split(spitChar);
string sql = null;
if (nodeValues.Length == )
{
string typeId = nodeValues[].Substring(, );
sql = "select 图书编号,出版社,作者,书名,图书ISBN号,分类 from bookTable d, BookType t where t.BoType_id like '"
+ typeId + "%' and t.BoType_name=d.分类";
}
else {
char[] spitChar2 = new char[] { '-' };
string[] typeId2 = nodeValues[].Split(spitChar2);
sql = "select 图书编号,出版社,作者,书名,图书ISBN号,分类 from bookTable d, BookType t where t.BoType_id ='"
+ typeId2[] + "' and t.BoType_name=d.分类";
} SqlDataSource1.SelectCommand = sql;
Response.Write(nodeValues.Length);
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) { string sql = "select * from BookType";
BindDataBase(sql);
Kind_Tree.ShowLines = true;
Kind_Tree.ExpandDepth = ; }
}

显示时,因为节点的文本太长,如果要设置自动换行,还需要设置TreeView的属性

NodeWrap = true

asp .Net TreeView实现数据绑定和事件响应的更多相关文章

  1. 【转载】Asp.Net中应用程序的事件响应次序

    Asp.Net应用程序事件响应次序是指Application事件的相应次序,涉及到的事件包括Application_Start事件.BeginRequest事件.AuthenticateRequest ...

  2. 转:asp.net TreeView CheckChanged 事件浅谈

    http://blog.csdn.net/xiage/article/details/5128755 在开发中经常可以碰到类似的问题: 想通过一个树父节点的TreeNodeCheckChanged 事 ...

  3. ASP.NET -- WebForm -- 页面生命周期事件

    ASP.NET -- WebForm --  页面生命周期事件在页生命周期的每个阶段中,页将引发可运行您自己的代码进行处理的事件. 1. PreInit: 使用该事件来执行下列操作: 检查 IsPos ...

  4. .net中的TreeView的数据绑定与EasyUi_tree的数据绑定

    昨天看到了.net中的TreeView,学习了一波TreeView的数据绑定,联想到EasyUi中的Tree的数据,觉得里面的逻辑差不多,就总结了一下两者的数据绑定. 前端页面和必要的JS如下 < ...

  5. asp.net学习之 数据绑定控件--List数据绑定控件

    原文:asp.net学习之 数据绑定控件--List数据绑定控件 List控件(如 CheckBoxList.DropDownList.ListBox 和 RadioButtonList 类)继承自L ...

  6. asp.net学习之数据绑定控件、数据源控件概述

    原文:asp.net学习之数据绑定控件.数据源控件概述 1.asp.net数据绑定控件分为三大类,每个类分别进行详细:      ● 列表式数据绑定控件: 列表式数据绑定控件常用来在一个表格内的一个字 ...

  7. asp.net学习之 数据绑定控件--表格绑定控件

    原文:asp.net学习之 数据绑定控件--表格绑定控件     数据绑定 Web 服务器控件是指可绑定到数据源控件,以实现在 Web 应用程序中轻松显示和修改数据的控件.数据绑定 Web 服务器控件 ...

  8. ASP.Net 自定义HttpModule注册管道事件

    背景: 一个请求在到达处理器时 可能需要做很多重复的工作 比如使用固定的算法推算出用户id 角色   如果在应用程序各处做重复解析 会产生大量代码冗余 还有能想到的诸如记录访问者 应用日志 统计流量 ...

  9. ASP.NET机制详细的管道事件流程(转)

    ASP.NET机制详细的管道事件流程 第一:浏览器向服务器发送请求. 1)浏览器向iis服务器发送请求网址的域名,根据http协议封装成请求报文,通过dns解析请求的ip地址,接着通过socket与i ...

随机推荐

  1. JS正则表达式将url转成json格式

    var url = location.search.substr(1); param = {}; console.log(url); url.replace(/([^?&]+)=([^?&am ...

  2. *HDU1598 并查集

    find the most comfortable road Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  3. Javascript的shift()和push(),unshift()和pop()方法简介

    栈方法: Javascript为数组专门提供了push()和pop()方法,以便实现类似栈的行为.来看下面的例子: var colors=new Array();       //创建一个数组 var ...

  4. cxf webservice简单应用

    Server端 server部署到一个端口号为80的tomcat中 CXFController.java package com.lwj.controller; import java.io.IOEx ...

  5. sonarqube插件开发(一) 环境搭建

    1. 下载Docker容器 # 最新版本镜像 docker pull sonarqube # 长期支持版镜像 docker pull sonarqube:lts 2. 将已有的插件导出(使用docke ...

  6. linux添加环境变量(centos)

    1.查看当前环境变量 #echo $PATH 2.增加环境变量 #vi /etc/profile export PATH=/usr/path/bin:$PATH 3.生效 #source /etc/p ...

  7. https://blog.helong.info/blog/2015/03/13/jump_consistent_hash/

    转载请说明出处:http://blog.csdn.net/cywosp/article/details/23397179     一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT) ...

  8. 【Html 学习笔记】第二节——文本格式

    上一节基本已经了解了一些html的基础,这一节主要学习html处理文本相关内容,直接看内容吧. 字体: 预格式文本:<pre> 地址:<address> 缩写:<abbr ...

  9. h5移动版云胶片系统

    h5移动版云胶片系统. 最近开了一个医疗用的云胶片,可以对图片放大.图片缩小,图片移动,图片调窗,图片切换,图片播放,图片变灰等等功能.如下图:

  10. 12月22日《奥威Power-BI财务报表数据填报》腾讯课堂开课啦

    一扇可以通向任何地方的“任意门”,是我们多少人幼时最梦寐以求的道具之一.即使到了现在,工作中的我们还会时不时有“世界那么大,我想去看看”的念头,或者在突然不想工作的时刻,幻想着自己的家门变成了“任意门 ...